All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Replaced
uvx pywhorecommendation with caveat about ephemeral environments - Re-release to include updated README on PyPI
- Respect
NO_COLOR/FORCE_COLORenvironment variables (https://no-color.org/) - Cache
supports_color()withlru_cacheto avoid redundant syscalls - Replace private
dist._pathwith publicdist.locate_file()API - Narrow bare
except Exceptionto(ImportError, StopIteration, OSError) - Complete Python 3.9 stdlib fallback (100 to 205 modules)
- Eliminate redundant
pyvenv.cfgread in_detect_package_manager() - Add explicit
encoding="utf-8"forpyvenv.cfgreads - Add
if __name__ == "__main__"guard to__main__.py
- Extract duplicated
_get_stdlib_names()to shared_stdlib.pymodule - Use
frozensetfor_EXCLUDE_DIRSand_IGNORE_NAMESconstants - Upgrade classifier to
Development Status :: 5 - Production/Stable
- Release workflow: publish to PyPI automatically on GitHub Release creation
- 95% minimum test coverage enforced in CI
- Comprehensive test suite: 131 tests with 97% coverage
- Tests for all venv types (conda, pipenv, virtualenv, uv, poetry)
- Cross-platform test fixes for Windows and Python 3.9
pywho scansubcommand for project-wide shadow detection- Scans directory trees for
.pyfiles that shadow stdlib or installed packages - Severity levels: HIGH (stdlib) and MEDIUM (installed)
--no-installedflag to check stdlib only--jsonflag for machine-readable outputscan_path()Python API withShadowResultdataclass- Smart exclusions: skips .venv, pycache, node_modules, dist, build, etc.
- Ignores common non-module files: setup.py, conftest.py, manage.py
pywho trace <module>subcommand for import resolution tracing- Shows where an import resolves and the full sys.path search order
- Shadow detection: warns when local files shadow stdlib or installed packages
--verboseflag for full sys.path search log--jsonflag for trace outputtrace_import()Python API withTraceReportdataclass- New docs pages for the trace feature
- Initial release
- Core environment inspection: interpreter, platform, venv, paths, packages
- Virtual environment detection: venv, virtualenv, uv, conda, poetry, pipenv
- Package manager detection: pip, uv, conda, poetry, pipenv, pyenv
- CLI with
--json,--packages, and--no-pipflags python -m pywhosupport- Cross-platform support: Linux, macOS, Windows
- Python 3.9 - 3.14 support
- Typed (py.typed marker)