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
uvx 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.1.tar.gz (27.4 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.1-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for taze-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3f00860dffcbba328f16afedb1db2674772ae57a872edf1272dc8420456e0001
MD5 3d0c32dd6b36944f4e99d85858b8c579
BLAKE2b-256 acdbbbc1684fab3413dbb220b21c6dcc0a1a693dbb2f32dd5938114f8952f776

See more details on using hashes here.

Provenance

The following attestation bundles were made for taze-0.1.1.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.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for taze-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ac455c8c96ee3195c0885ad9276533d5fb0237aca05cf466cf57fd7f0712bcbb
MD5 33c269870161179455e4752a6b5853ba
BLAKE2b-256 625c3b2aa9496a397bccedaf148adcda7fd4dc78ffeb52b333c78d5ca3a7a12e

See more details on using hashes here.

Provenance

The following attestation bundles were made for taze-0.1.1-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