hdeps
Simple dependency not-a-solver lets you debug where backtracking would happen, or figure out what would change on a platform that's not the same as you're running right now.
This code was originally part of honesty but is easier to iterate on with pypi-simple as its source.
# For looking up published projects
$ hdeps requests
$ hdeps --install-order requests
$ hdeps --have urllib3==1.999 requests
# For looking up local (potentially modified) projects
$ hdeps .
$ hdeps /path/to/checkout
$ hdeps -r /path/to/requirements.{txt,in}
Why isn't it a solver?
Think of this as a debugging solver. It doesn't come up with one single solution, but does the bulk of the legwork to let you, the human, figure out what the problematic part of your dep tree is (even if the machine you're running on isn't the same as you're trying to figure out).
If you want a real solver, I highly recommend look at resolvelib for low-level operations, or poetry which includes a higher-level solver that keeps track of operations (like "upgrade" separately from "install").
Version Compat
This project should work on 3.10-3.12, including mypy compatibility as checked by tests. Linting on older versions will not catch all issues (e.g. whitespace in f-strings), so 3.12 is recommended. Some transitive dependencies (pydantic-core and libcst) rely on binary wheels that are not available yet on 3.13 and do not easily build from source.
License
MIT, see LICENSE for details.
Metadata
Release files for hdeps 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hdeps-1.4.0.tar.gz | 36.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hdeps-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 81.3 kB
Release files / hdeps-1.4.0.tar.gz
| Download URL | hdeps-1.4.0.tar.gz |
|---|---|
| Size | 36.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a53a71c246e31cafab3d67ec8c2f7afb98713b8eefb578977c8ccaf13f28eb2
|
|
BLAKE2b-256 checksum How to use checksums |
e3aeece39872af58442a91412841048375e417a9e3bb73540b5388748ca086a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.5
|
Release files / hdeps-1.4.0-py3-none-any.whl
| Download URL | hdeps-1.4.0-py3-none-any.whl |
|---|---|
| Size | 44.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f807e4dcd23b7fe803782d84ef3285a437d073017ef1b7162d1bb15c0c0c3ea0
|
|
BLAKE2b-256 checksum How to use checksums |
52e846e5f8aa7e34b3b22d5cd4aaa05da2c12444663edc314c4e396972665773
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.5
|