Skip to content

Commit

Permalink
Log failures to find conda install folders
Browse files Browse the repository at this point in the history
  • Loading branch information
DonJayamanne committed Oct 1, 2024
1 parent 432f0ef commit 570655e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
32 changes: 31 additions & 1 deletion crates/pet-conda/src/environments.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use crate::{
package::{CondaPackageInfo, Package},
utils::{is_conda_env, is_conda_install},
};
use log::warn;
use log::{info, warn};
use pet_core::{
arch::Architecture,
manager::EnvManager,
Expand Down Expand Up @@ -76,10 +76,40 @@ pub fn get_conda_environment_info(
return None;
}
// If we know the conda install folder, then we can use it.
let conda_install_folder2 = manager
.clone()
.and_then(|m| m.conda_dir)
.or_else(|| get_conda_installation_used_to_create_conda_env(env_path));
let mut conda_install_folder = match manager {
Some(manager) => manager.conda_dir.clone(),
None => get_conda_installation_used_to_create_conda_env(env_path),
};
match manager {
Some(manager) => {
if conda_install_folder.is_none() {
warn!(
"Given a conda Conda manager but no conda_install_folder for {:?} => {:?}",
env_path, manager
);
} else {
info!(
"Given a conda Conda manager & found the conda_install_folder for {:?} => {:?}",
env_path, manager
);
}
}
None => {
warn!("No conda Conda manager given for {:?}", env_path);
}
}
info!(
"Got ({:?} & {:?}) install folder for {:?} => {:?} and install folder 2 as {:?}",
conda_install_folder.is_some(),
conda_install_folder2.is_some(),
env_path,
conda_install_folder,
conda_install_folder2
);
if let Some(conda_dir) = &conda_install_folder {
if !conda_dir.exists() {
warn!(
Expand Down
11 changes: 10 additions & 1 deletion crates/pet-conda/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use environment_locations::{
get_environments,
};
use environments::{get_conda_environment_info, CondaEnvironment};
use log::error;
use log::{error, info};
use manager::CondaManager;
use pet_core::{
env::PythonEnv,
Expand Down Expand Up @@ -245,16 +245,22 @@ impl Locator for Conda {
if let Some(env) = environments.get(path) {
return Some(env.clone());
}
info!("Getting conda env info for {:?}", path);

if let Some(env) = get_conda_environment_info(path, &None) {
info!("Got conda env info for {:?} => {:?}", path, env);
if let Some(conda_dir) = &env.conda_dir {
info!("Got Conda dir and now Getting conda manager for {:?}", path);
if let Some(manager) = self.get_manager(conda_dir) {
info!("Got conda manager for {:?} => {:?}", path, manager);
let env = env.to_python_environment(
Some(conda_dir.clone()),
Some(manager.to_manager()),
);
environments.insert(path.clone(), env.clone());
return Some(env);
} else {
error!("Did not get conda manager for {:?}", path);
// We will still return the conda env even though we do not have the manager.
// This might seem incorrect, however the tool is about discovering environments.
// The client can activate this env either using another conda manager or using the activation scripts
Expand All @@ -264,6 +270,7 @@ impl Locator for Conda {
return Some(env);
}
} else {
error!("Did not get conda dir for {:?}", path);
// We will still return the conda env even though we do not have the manager.
// This might seem incorrect, however the tool is about discovering environments.
// The client can activate this env either using another conda manager or using the activation scripts
Expand All @@ -272,6 +279,8 @@ impl Locator for Conda {
environments.insert(path.clone(), env.clone());
return Some(env);
}
} else {
error!("Did not get conda env info for {:?}", path);
}
}
None
Expand Down

0 comments on commit 570655e

Please sign in to comment.