Skip to main content

Simple what-if dep resolution for python

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hdeps-1.4.0.tar.gz (36.5 kB view details)

Uploaded Source

Built Distribution

hdeps-1.4.0-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file hdeps-1.4.0.tar.gz.

File metadata

  • Download URL: hdeps-1.4.0.tar.gz
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for hdeps-1.4.0.tar.gz
Algorithm Hash digest
SHA256 5a53a71c246e31cafab3d67ec8c2f7afb98713b8eefb578977c8ccaf13f28eb2
MD5 571eb57d0929fe1cdfc3ea32d2af3023
BLAKE2b-256 e3aeece39872af58442a91412841048375e417a9e3bb73540b5388748ca086a2

See more details on using hashes here.

File details

Details for the file hdeps-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: hdeps-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 44.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for hdeps-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f807e4dcd23b7fe803782d84ef3285a437d073017ef1b7162d1bb15c0c0c3ea0
MD5 7c2753acce7095544e02e926be915c69
BLAKE2b-256 52e846e5f8aa7e34b3b22d5cd4aaa05da2c12444663edc314c4e396972665773

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page