Fawltydeps

Latest version: v0.19.0

Safety actively analyzes 715032 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.13.3

This release introduces a slight change in how FawltyDeps finds Python environments (used for resolving declared dependencies into provided import names). Specifically the change regards the use of the _current_ Python environment (i.e. the one in which FawltyDeps itself is installed and running):

Since v0.12, we would not use this environment if _any_ other Python environment was found (either via `--pyenv` or otherwise via searching inside your project). This would still be sufficient in the relatively common case where you (a) run `fawltydeps` with default settings, and (b) FawltyDeps is installed in the same environment as your project dependencies, and (c) this environment lives _outside_ your project directory (e.g. like Poetry does by default). However, if you add another complicating factor: (d) another virtualenv is found _inside_ your project and this happens to _not_ contain your project dependencies, then FawltyDeps would prefer this environment over the _current_ environment, and dependency resolution would suffer.

We have now changed the rules to _always_ include the current environment in the dependency resolution (but at a lower priority than any other Python environments given with `--pyenv` or found in your project). The result should be improved dependency resolution in the above corner case, but otherwise the observed behavior should remain unchanged.

Otherwise, in this release, and thanks to msabramo, we have revamped the `pre-commit` rules that come with FawltyDeps. These will now give more accurate results when there are _untracked_ files in your tree that would otherwise affect FawltyDeps' calculation of undeclared and unused dependencies.

What's Changed
* Reintroduce current Python environment as a separate level in our resolver stack by jherland in https://github.com/tweag/FawltyDeps/pull/394
* Separate `check-undeclared`, `check-unused` pre-commit hooks by msabramo in https://github.com/tweag/FawltyDeps/pull/386
* Preliminary refactoring before `--ignore` feature by jherland in https://github.com/tweag/FawltyDeps/pull/387

New Contributors
* msabramo made their first contribution in https://github.com/tweag/FawltyDeps/pull/386 🎉

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.13.2...v0.13.3

Refer to the project's [`README.md`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.13.2

In this release, we've focused on fine-tuning and enhancing the compatibility and functionality of our project.

Notable updates include better recognition of `requirements.txt`, support for Python v3.12, and enhanced handling of Python code with encoding declarations, collectively enhancing the overall performance and user experience.

What's Changed
* Relax regex re. recognizing requirements.txt by jherland in https://github.com/tweag/FawltyDeps/pull/372
* Support Python v3.12 by jherland in https://github.com/tweag/FawltyDeps/pull/383
* Handle Python code with embedded encoding declarations by jherland in https://github.com/tweag/FawltyDeps/pull/384
* Bump version to 0.13.2 by zz1874 in https://github.com/tweag/FawltyDeps/pull/389


**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.13.1...v0.13.2

0.13.1

In this release, we've introduced several key changes and enhancements to improve the functionality and maintainability of our project.

We've implemented the functionality of recognizing and automatically ignoring developer tools and type stubs from project dependencies.
Additionally, we've enhanced the flexibility of the project by adding support for dynamic dependencies in `pyproject.toml`.

In addition to these changes, we've made several refinements to the project. We've prevented `pip install` messages from polluting our JSON output. Our project now also supports Pydantic v2, keeping up with the latest developments in the Python ecosystem. We've also introduced a dedicated contributor guide, and we've improved code organization in `tests/`.

What's Changed
* Add Support for Dynamic Dependencies in pyproject.toml by zz1874 in https://github.com/tweag/FawltyDeps/pull/351
* TemporaryPipInstallResolver: Prevent `pip install` from polluting stdout by jherland in https://github.com/tweag/FawltyDeps/pull/361
* Split the self_test part of the tests into another file by zz1874 in https://github.com/tweag/FawltyDeps/pull/363
* Detect types stubs dependencies by zz1874 in https://github.com/tweag/FawltyDeps/pull/362
* Support Pydantic v2 by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/364
* Add a contributor guide by zz1874 in https://github.com/tweag/FawltyDeps/pull/366
* Add Zhihan as maintainer by jherland in https://github.com/tweag/FawltyDeps/pull/367
* Exclude development tools from unused dependencies detection by zz1874 in https://github.com/tweag/FawltyDeps/pull/365
* Bump version to 0.13.1 by zz1874 in https://github.com/tweag/FawltyDeps/pull/369


**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.13.0...v0.13.1

Refer to the project's [README](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.13.0

This is a major release that marks the completion of features for our mapping strategy milestone.
In particular, identity mapping and mapping from temporarily installed dependencies are now mutually exclusive and the latter can be invoked from the CLI with the `--install-deps` option. The documentation has been updated to reflect all the changes to mapping we have made over the recent releases.

A new addition is the `--list-sources` option, which makes it possible to examine the code, deps and Python environment sources used by FawltyDeps when analyzing your project.

This release also updates the CI and the test suite.

What's Changed
* ADD CLI option for --install-deps by mknorps in https://github.com/tweag/FawltyDeps/pull/341
* Run fawltydeps against itself in CI by zz1874 in https://github.com/tweag/FawltyDeps/pull/348
* Make identity mapping and install-deps mutually exclusive by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/349
* Add `--list-sources` to CLI by jherland in https://github.com/tweag/FawltyDeps/pull/346
* Add tests to verify fallback to current venv when no other env is found by jherland in https://github.com/tweag/FawltyDeps/pull/350
* Pin version of Poetry in CI to 1.5.1 to maintain support for Python 3.7 by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/354
* Update the documentation to match the current state of the mapping strategy by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/356

New Contributors
* zz1874 made her first contribution in https://github.com/tweag/FawltyDeps/pull/348

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.12.1...v0.13.0


Refer to the project's [`README`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.12.1

This is a fixup release to [v0.12.0](https://github.com/tweag/FawltyDeps/releases/tag/v0.12.0) where an important part of automatically discovering Python environments inside a project was omitted: By default, when no `--pyenv` was passed, the set of paths to be searched for Python environments would remain empty. This has now been fixed with #344.

In addition we welcome a new feature: easily allowing FawltyDeps to be used as a pre-commit hook. Thanks to multimeric for contributing!

What's Changed
* Add pre commit metadata by multimeric in https://github.com/tweag/FawltyDeps/pull/343
* Fix Settings.pyenvs to _actually_ use basepath by default by jherland in https://github.com/tweag/FawltyDeps/pull/344

New Contributors
* multimeric made their first contribution in https://github.com/tweag/FawltyDeps/pull/343

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.12.0...v0.12.1

Refer to the project's [`README`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.12.0

What's Changed
* `LocalPackageResolver`: Handle multiple package dirs inside one Python env by jherland in https://github.com/tweag/FawltyDeps/pull/318
* New code for traversing directories by jherland in https://github.com/tweag/FawltyDeps/pull/324
* Prepare test suite for traversing Python environments by jherland in https://github.com/tweag/FawltyDeps/pull/325
* Allow isort >= 5.12 when running on Python > 3.7 by jherland in https://github.com/tweag/FawltyDeps/pull/335
* Change development status to 3- Alpha by mknorps in https://github.com/tweag/FawltyDeps/pull/337
* Teach FawltyDeps to automatically discover Python environments inside the project by jherland in https://github.com/tweag/FawltyDeps/pull/326
* Various cleanups after integrating Python environments into `traverse_project` by jherland in https://github.com/tweag/FawltyDeps/pull/327
* Test refactoring: fake_project fixture by jherland in https://github.com/tweag/FawltyDeps/pull/333
* Upgrade our dev env to use Python v3.11 by default by jherland in https://github.com/tweag/FawltyDeps/pull/336

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.11.0...v0.12.0

Refer to the project's [`README`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

Page 2 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.