Update dependencies and optional dependencies in pyproject.toml files based on
defined match operators.
This project aims to enable a similar workflow as pur does for requirements.txt files.
Install and run:
pip install uppd uppd INFO: dlister==1.1.0 -> dlister==1.2.0 INFO: pytest-aiohttp==1.0.0 -> pytest-aiohttp==1.0.5 INFO: pytest==8.0.0 -> pytest==8.3.3
Set inputs and output files:
uppd -i dev/pyproject.toml uppd -i pyproject.toml -o pyproject.toml.updated
Skip dependencies:
uppd --skip foo bar
Allow upgrade to pre releases:
uppd --pre foo bar
Print help:
uppd --help
usage: uppd [-h]
[-i INFILE]
[-o OUTFILE]
[-m [{<,<=,==,>=,>,~=} ...]]
[--skip [SKIP ...]]
[--dev [DEV ...]]
[--pre [PRE ...]]
[--post [POST ...]]
[--index-url INDEX_URL]
[--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--log-file LOG_FILE]
[--dry-run]
[-v]
Update Python Project Dependencies.
options:
-h, --help show this help message and exit
-i INFILE, --infile INFILE
path(s) to input file(s) (default: pyproject.toml)
-o OUTFILE, --outfile OUTFILE
path(s) to output file(s). (default: [])
-m [{<,<=,==,>=,>,~=} ...], --match-operators [{<,<=,==,>=,>,~=} ...]
operators to upgrade. (default: ['==', '<=', '~='])
--skip [SKIP ...] dependencies to skip upgrade. (default: [])
--dev [DEV ...] dependencies to upgrade to dev release. (default: [])
--pre [PRE ...] dependencies to upgrade to pre release. (default: [])
--post [POST ...] dependencies to upgrade to post release. (default: ['*'])
--index-url INDEX_URL
base URL of the Python Package Index. (default: https://pypi.org)
--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
logging level. (default: INFO)
--log-file LOG_FILE pipe loggining to file instead of stdout. (default: None)
--dry-run do not save changes to output file(s). (default: False)
-v, --version show program's version number and exit
The following settings (with defaults) can be set/overwritten in the infile:
[tool.uppd] match_operators = ["==", "<=", "~="] skip = [] dev = [] pre = [] post = ["*"] index_url = "https://pypi.org"
Setup, run tests and release:
pip install -e .[dev] brundle pytest bouillon release
This project aims to enable a similar workflow as pur for requirements.txt files, and essentially exists because pur (at the time of writing) does not support upgrading dependencies in pyproject.toml files.