Ensures your first-order deps are correct
Project description
checkdeps
It's really easy to accidentally use your transitive deps by accident. This project allows you to check (given a working venv) that everything you import actually comes from either relative imports, your explicit first-order deps, or stdlib.
Usage:
# Run within a working venv
# For CI
$ python -m checkdeps checkdeps
# If you use non-relative imports for your own project's code, also add
$ python -m checkdeps checkdeps --allow-names checkdeps
# For humans, pass -v
$ python -m checkdeps -v checkdeps/cli.py
checkdeps/cli.py:
click available from ['click']
pathlib.Path stdlib
stdlibs.stdlib_module_names available from ['stdlibs']
sys stdlib
trailrunner available from ['trailrunner']
typing.Dict stdlib
typing.List stdlib
typing.Optional stdlib
typing.Set stdlib
Exits nonzero if there are any issues.
But what if I don't want to run it from the same venv
Make sure you specify --installed-path
to the site-packages dir and run from the same
python version. A parent of your target_dir
should be obviously the root of your
project (pyproject.toml
, .git
, etc), which is what the requirements
are relative to.
But aren't there projects that do this already?
I've looked at them, and I don't like the assumptions they make about top-level names, stdlib, or namespace packages. I think this project is more correct and more self-contained.
Future work
- Read project metadata instead of requirements
- Ensure metadata and requirements match
- Offer to add missing deps
- Better handling of version-dependent deps in an
if
ortry
/except
License
checkdeps is copyright Tim Hatch, and licensed under
the MIT license. I am providing code in this repository to you under an open
source license. This is my personal repository; the license you receive to
my code is from me and not from my employer. See the LICENSE
file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file checkdeps-0.9.0.tar.gz
.
File metadata
- Download URL: checkdeps-0.9.0.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4382c1dbada0f5b7aa458402af4fa0003d3cb54c7c83cd2661d441e0c416973 |
|
MD5 | 0f79c1694190e5f38c69e08a45e27857 |
|
BLAKE2b-256 | 04fe318ee5fb06a9cc5e5e0c6d7a30bd961efd23ea5ba7c1f2068c8911f6ced4 |
File details
Details for the file checkdeps-0.9.0-py3-none-any.whl
.
File metadata
- Download URL: checkdeps-0.9.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15cec29977a08bcc57d029307b4250b3f97f99aa45d932c8322b3cd0a4059c2f |
|
MD5 | c0eb8eafdb6746530280417d754f0e87 |
|
BLAKE2b-256 | 6394d80517af39ea2e7b079187f280dae12dbc8a6252a0860f7d0adbfb49b127 |