Requirement (dependency) management for python projects
Project description
dependence
This project provides a Command Line Interface and library for inspecting and updating python project dependency versions in setup.cfg, pyproject.toml, and requirements.txt files.
Installation
You can install dependence
with pip:
pip3 install dependence
Usage
Command Line Interface
$ dependence -h
Usage:
dependence <command> [options]
Commands:
update Update requirement versions in the specified
files to align with currently installed versions
of each distribution
freeze Print dependencies inferred from an installed
distribution or project, in a similar format
to the output of `pip freeze`.
dependence update
This command will update version specifiers for all package requirements in your setup.cfg, pyproject.toml, tox.ini, or requirements.txt files to match currently installed versions of each distribution (matching the existing granularity, and only for inclusive specifiers—so where the comparator is "~=", "==", ">=", or "<=", but not where the comparator is ">", "<", or "!=").
$ dependence update -h
usage: dependence update [-h] [-i IGNORE] [-aen ALL_EXTRA_NAME]
path [path ...]
Update requirement versions in the specified files to align with currently
installed versions of each distribution.
positional arguments:
path One or more local paths to a setup.cfg,
setup.cfg, and/or requirements.txt file
optional arguments:
-h, --help show this help message and exit
-i IGNORE, --ignore IGNORE
A comma-separated list of distributions to ignore
(leave any requirements pertaining to the package
as-is)
-aen ALL_EXTRA_NAME, --all-extra-name ALL_EXTRA_NAME
If provided, an extra which consolidates the
requirements for all other extras will be
added/updated to setup.cfg or setup.cfg
(this argument is ignored for requirements.txt
files)
Example:
dependence update -aen all setup.cfg pyproject.toml tox.ini
dependence freeze
$ dependence freeze -h
usage: dependence freeze [-h] [-e EXCLUDE] [-er EXCLUDE_RECURSIVE] [-nv NO_VERSION]
[-do] [--reverse] [-d DEPTH]
requirement [requirement ...]
This command prints dependencies inferred from an installed distribution or project, in
a similar format to the output of `pip freeze`, except that all generated requirements
are specified in the format "distribution-name==0.0.0" (including for editable
installations). Using this command instead of `pip freeze` to generate requirement
files ensures that you don't bloat your requirements files with superfluous
distributions.
positional arguments:
requirement One or more requirement specifiers (for example: "requirement-
name", "requirement-name[extra-a,extra-b]", ".[extra-a,
extra-b]" or "../other-editable-package-directory[extra-a,
extra-b]) and/or paths to a setup.py, setup.cfg,
pyproject.toml, tox.ini or requirements.txt file
optional arguments:
-h, --help show this help message and exit
-e EXCLUDE, --exclude EXCLUDE
A distribution (or comma-separated list of distributions) to
exclude from the output
-er EXCLUDE_RECURSIVE, --exclude-recursive EXCLUDE_RECURSIVE
A distribution (or comma-separated list of distributions) to
exclude from the output. Unlike -e / --exclude, this argument
also precludes recursive requirement discovery for the
specified packages, thereby excluding all of the excluded
package's requirements which are not required by another (non-
excluded) distribution.
-nv NO_VERSION, --no-version NO_VERSION
Don't include versions (only output distribution names) for
packages matching this/these glob pattern(s) (note: the value
must be single-quoted if it contains wildcards)
-do, --dependency-order
Sort requirements so that dependents precede dependencies
--reverse Print requirements in reverse order
-d DEPTH, --depth DEPTH
Depth of recursive requirement discovery
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 dependence-0.3.2.tar.gz
.
File metadata
- Download URL: dependence-0.3.2.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b82b3ce7e004f8cd15daccd768afe6f25dce9634b8f4b4cf751d65cd6d65a52 |
|
MD5 | 30a50d53fb2f8ee2eece3b519c0501d7 |
|
BLAKE2b-256 | 445d522afcafeed4b9f17c3d5e81af59d50acc3ffed30086696257b1bfe2d714 |
File details
Details for the file dependence-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: dependence-0.3.2-py3-none-any.whl
- Upload date:
- Size: 20.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac67b126ad33b009fa066f720fdf3214e02048765937a7adbfd1b6933ffd5b19 |
|
MD5 | a1157bb2f4dabee89beb253be4b8189b |
|
BLAKE2b-256 | 141ac7257f881f1f1eb5f128c9144dd1bd2de85ce397edaedbd6251ff75ac693 |