Revise comment on virtualenv discovery from cwd (#3406)
See: https://github.com/astral-sh/uv/pull/3379/files/37d229b2c2e849370d3ff0fa858bd7837c3b6cf6..cd53a28181fd0de3c02e849ceda1038f2c34a3c5#r1590746360
This commit is contained in:
@@ -73,14 +73,20 @@ pub(crate) fn virtualenv_from_env() -> Option<PathBuf> {
|
||||
|
||||
/// Locate a virtual environment by searching the file system.
|
||||
///
|
||||
/// Checks if the working directory is a virtual environment.
|
||||
///
|
||||
/// If not, finds a `.venv` directory in the current or any parent directory.
|
||||
/// Searches for a `.venv` directory in the current or any parent directory. If the current
|
||||
/// directory is itself a virtual environment (or a subdirectory of a virtual environment), the
|
||||
/// containing virtual environment is returned.
|
||||
pub(crate) fn virtualenv_from_working_dir() -> Result<Option<PathBuf>, Error> {
|
||||
let current_dir = env::current_dir().expect("Failed to detect current directory");
|
||||
|
||||
for dir in current_dir.ancestors() {
|
||||
// Search for a `.venv` directory.
|
||||
// If we're _within_ a virtualenv, return it.
|
||||
if dir.join("pyvenv.cfg").is_file() {
|
||||
debug!("Found a virtualenv at: {}", dir.display());
|
||||
return Ok(Some(dir.to_path_buf()));
|
||||
}
|
||||
|
||||
// Otherwise, search for a `.venv` directory.
|
||||
let dot_venv = dir.join(".venv");
|
||||
if dot_venv.is_dir() {
|
||||
if !dot_venv.join("pyvenv.cfg").is_file() {
|
||||
@@ -89,12 +95,6 @@ pub(crate) fn virtualenv_from_working_dir() -> Result<Option<PathBuf>, Error> {
|
||||
debug!("Found a virtualenv named .venv at: {}", dot_venv.display());
|
||||
return Ok(Some(dot_venv));
|
||||
}
|
||||
|
||||
// Otherwise, if we're _within_ a virtualenv, return it.
|
||||
if dir.join("pyvenv.cfg").is_file() {
|
||||
debug!("Found a virtualenv at: {}", dir.display());
|
||||
return Ok(Some(dir.to_path_buf()));
|
||||
}
|
||||
}
|
||||
|
||||
Ok(None)
|
||||
|
||||
Reference in New Issue
Block a user