@@ -13,6 +13,7 @@ use std::{
1313
1414use env_variables:: EnvVariables ;
1515use environments:: { get_generic_python_environment, get_virtual_env_environment} ;
16+ use log:: trace;
1617use manager:: PyEnvInfo ;
1718use pet_conda:: { utils:: is_conda_env, CondaLocator } ;
1819use pet_core:: {
@@ -33,7 +34,6 @@ mod manager;
3334pub struct PyEnv {
3435 pub env_vars : EnvVariables ,
3536 pub conda_locator : Arc < dyn CondaLocator > ,
36- found_pyenv : AtomicBool ,
3737 manager : Arc < Mutex < Option < EnvManager > > > ,
3838 versions_dir : Arc < Mutex < Option < PathBuf > > > ,
3939}
@@ -44,24 +44,22 @@ impl PyEnv {
4444 conda_locator : Arc < dyn CondaLocator > ,
4545 ) -> impl Locator {
4646 PyEnv {
47- found_pyenv : AtomicBool :: new ( false ) ,
4847 env_vars : EnvVariables :: from ( environment) ,
4948 conda_locator,
5049 manager : Arc :: new ( Mutex :: new ( None ) ) ,
5150 versions_dir : Arc :: new ( Mutex :: new ( None ) ) ,
5251 }
5352 }
5453 fn clear ( & self ) {
55- self . found_pyenv
56- . store ( false , std:: sync:: atomic:: Ordering :: Relaxed ) ;
5754 self . manager . lock ( ) . unwrap ( ) . take ( ) ;
5855 self . versions_dir . lock ( ) . unwrap ( ) . take ( ) ;
5956 }
6057 fn get_manager_versions_dir ( & self ) -> ( Option < EnvManager > , Option < PathBuf > ) {
6158 let mut managers = self . manager . lock ( ) . unwrap ( ) ;
6259 let mut versions = self . versions_dir . lock ( ) . unwrap ( ) ;
63- if ! self . found_pyenv . load ( Ordering :: Relaxed ) && ( managers. is_none ( ) || versions. is_none ( ) ) {
60+ if managers. is_none ( ) || versions. is_none ( ) {
6461 let pyenv_info = PyEnvInfo :: from ( & self . env_vars ) ;
62+ trace ! ( "PyEnv Info {:?}" , pyenv_info) ;
6563 if let Some ( ref exe) = pyenv_info. exe {
6664 let version = pyenv_info. version . clone ( ) ;
6765 let manager = EnvManager :: new ( exe. clone ( ) , EnvManagerType :: Pyenv , version) ;
@@ -74,9 +72,8 @@ impl PyEnv {
7472 } else {
7573 versions. take ( ) ;
7674 }
77- self . found_pyenv . store ( true , Ordering :: Relaxed ) ;
7875 }
79-
76+ trace ! ( "PyEnv Manager {:?} and versions {:?}" , managers , versions ) ;
8077 ( managers. clone ( ) , versions. clone ( ) )
8178 }
8279}
@@ -164,6 +161,8 @@ impl Locator for PyEnv {
164161 }
165162 }
166163 } ) ;
164+ } else {
165+ trace ! ( "PyEnv versions directory not found" ) ;
167166 }
168167 }
169168}
0 commit comments