Detection Logic
envoic classifies directories by combining definitive and strong filesystem signals.
Signal hierarchy
Definitive signals
pyvenv.cfgpresent
This is the strongest indicator for venv/virtualenv style environments.
Strong signals
- Python executable (
bin/pythonorScripts/python.exe) - site-packages directory layout
- activate scripts
conda-metadirectory
Multiple strong signals increase confidence.
Classification rules
At a high level:
- If
conda-metaexists → classify asconda. - Else if definitive/strong venv signals match → classify as
venv. - Else if directory name is
.env→ classify asdotenv_dir. - Else →
unknown.
Normal scan output excludes unknown.
Signals field
Each detected environment carries a signals list that records matched checks, such as:
pyvenv.cfgconda-metapython-binarysite-packagespython+site-packagesactivate-script
This makes detection decisions inspectable and scriptable.