Skip to main content

🥬 Keep your Python deps fresh

Project description

taze 🥬

Keep your Python dependencies fresh.

Inspired by taze for Node.js — ported to the Python ecosystem with support for pyproject.toml and requirements.txt.


Features

  • Checks all dependencies against PyPI in parallel
  • Shows the bump level (patch / minor / MAJOR) with colors
  • Displays release age for both the current and latest version
  • Supports pyproject.toml (PEP 508, PEP 735, uv) and requirements*.txt
  • Writes updated version constraints back to the file (-w)
  • Runs uv sync after writing (-i)
  • Interactive package selection (-I)
  • Recursive monorepo scanning (-r)
  • Pre-release support (newest / next mode)
  • Regex filtering for include / exclude

Installation

uv tool install taze
# or
pip install taze

Usage

taze [mode] [options]

Modes

Mode What it shows
default All stable updates (default)
major Same as default
minor Minor and patch updates only
patch Patch updates only
latest All stable updates
stable All stable updates
newest All updates including pre-releases
next Same as newest

Examples

# Check everything in the current directory
taze

# Only show minor and patch updates
taze minor

# Write patch updates back to pyproject.toml
taze patch -w

# Write all updates and run uv sync
taze -w -i

# Interactive — pick which packages to update
taze -I

# Include pre-releases
taze newest

# Scan all subdirectories (monorepo)
taze -r

# Only check specific packages
taze -n requests,httpx

# Skip packages matching a pattern
taze -x /^pytest/

# Sort by largest update first
taze --sort diff-desc

# Machine-readable JSON output
taze --json

Options

  -w, --write              Write updates back to file
  -i, --install            Run uv sync after writing (implies -w)
  -u, --update             Alias for --install
  -I, --interactive        Choose which packages to update interactively
  -r, --recursive          Scan subdirectories for pyproject.toml / requirements*.txt
  -a, --all                Show up-to-date packages too
  -n, --include <deps>     Only check these packages (comma-separated or /regex/)
  -x, --exclude <deps>     Skip these packages (comma-separated or /regex/)
  -C, --cwd <path>         Working directory
  -s, --silent             No output
  -v, --version            Show version
      --sort <type>        Sort output: name-asc | name-desc | diff-asc | diff-desc
      --fail-on-outdated   Exit with code 1 if any outdated dependencies are found
      --concurrency <n>    Number of concurrent PyPI requests (default: 10)

Output

  📦  pyproject.toml  /home/user/myproject/pyproject.toml

  dependencies  3 outdated
    packaging  ~8mo  >=25.2     →  >=26.2     ~3mo  MAJOR
    rich       ~4mo  >=14.0.0   →  >=15.0.0   ~3d   MAJOR
    typer      ~6mo  >=0.25.7   →  >=0.26.7   ~3d   minor

  group:dev  1 outdated
    ruff       ~8mo  >=0.14.1   →  >=0.15.19  ~1d   minor

  Run taze -w to write 4 update(s) to pyproject.toml

The age columns show how old the current pinned version is and how recently the latest version was released — green for < 4 weeks, yellow for < 6 months, red for older.


Supported file formats

File Section
pyproject.toml [project] dependencies
pyproject.toml [project.optional-dependencies.*]
pyproject.toml [dependency-groups.*] (PEP 735)
pyproject.toml [tool.uv.dev-dependencies]
requirements*.txt Standard pip format

License

MIT

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

taze-0.1.0.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

taze-0.1.0-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file taze-0.1.0.tar.gz.

File metadata

  • Download URL: taze-0.1.0.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for taze-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2aef456e266583463a12e901c12c97ece0455d9b0130cd7c60e492c1cf2519e9
MD5 8b768cc4a39f6415fa85968dfd81ad43
BLAKE2b-256 21546222cf0963bf65b3b7f2c4724b68ca8c811e10e41b1513a845a19190676d

See more details on using hashes here.

Provenance

The following attestation bundles were made for taze-0.1.0.tar.gz:

Publisher: publish.yml on keksiqc/taze

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taze-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: taze-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for taze-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57068fab6e087dc6cd74c5073e6cb6a960fe8b2e124538b617fb95ccaee1aedc
MD5 b96c9aa748f6f3a5628fa0f054825fb3
BLAKE2b-256 fbe8c3accc40739aa2d319e9b322ff2bc18e332203764848351a240ba1dfb73c

See more details on using hashes here.

Provenance

The following attestation bundles were made for taze-0.1.0-py3-none-any.whl:

Publisher: publish.yml on keksiqc/taze

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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