Skip to main content

Check for dependency updates in pyproject.toml, like ncu for uv projects

Project description

uuc — uv update check

pypi version pypi monthly downloads pypi license build status python versions coverage

A minimalist npm-check-updates equivalent for uv projects. Check your pyproject.toml dependencies against PyPI and see what's outdated — in the exact same output style as ncu.

$ uuc
Checking /path/to/pyproject.toml
[====================] 9/9 100%

 httpx           >=0.27 → >=0.28.1
 rich              >=13 → >=14.3.3
 typer           >=0.12 → >=0.24.1
 pytest             >=8 → >=9.0.2
 pytest-asyncio  >=0.24 → >=1.3.0

Run uuc -u to upgrade pyproject.toml

Updates are color-coded by severity: red for major, cyan for minor, green for patch — with partial version coloring just like ncu.

Install

uv tool install uv-update-check

Or run directly without installing:

uvx uv-update-check

Usage

# Show outdated dependencies (read-only, default)
uuc

# Update pyproject.toml with latest versions
uuc -u

# Only show minor/patch updates (no breaking changes)
uuc -t minor

# Only show patch updates
uuc -t patch

# Exclude specific packages
uuc -x httpx,rich

# Check a specific project
uuc --path /path/to/pyproject.toml

# Include pre-release versions
uuc --pre

# Combine flags
uuc -t minor -x httpx -u

Options

Flag Description
-u, --update Rewrite pyproject.toml with new versions
-t, --target Target version level: latest (default), minor, patch
-x, --reject Exclude packages (comma-delimited)
-p, --path Path to pyproject.toml (default: search from cwd)
--pre Include pre-release versions
-V, --version Show version

What it checks

uuc discovers dependencies from all standard pyproject.toml sections:

  • [project.dependencies]
  • [project.optional-dependencies.*]
  • [dependency-groups.*] (PEP 735)

It supports all common version specifiers: >=, ~=, ==, ^, >, <, !=.

What it skips

  • URL, git, and path dependencies
  • Dependencies with no version specifier
  • {include-group = "..."} entries in dependency groups

How it works

  1. Finds and parses pyproject.toml using tomlkit (preserves formatting and comments)
  2. Extracts all dependencies from the sections above
  3. Fetches latest versions from the PyPI JSON API concurrently using httpx + anyio
  4. Compares versions using packaging with semver-aware classification
  5. Displays results in ncu-style output with Rich
  6. With -u, rewrites pyproject.toml in-place preserving all formatting, comments, and ordering

Differences from similar tools

Tool What it does How uuc differs
uv lock --upgrade Upgrades within existing constraints uuc shows what's available beyond your constraints
uv pip list --outdated Shows outdated installed packages uuc checks pyproject.toml constraints, not installed versions
pip-check-updates Similar concept uuc is uv-native with dependency-groups support

Requirements

  • Python >= 3.14

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

uv_update_check-0.3.0.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

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

uv_update_check-0.3.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file uv_update_check-0.3.0.tar.gz.

File metadata

  • Download URL: uv_update_check-0.3.0.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for uv_update_check-0.3.0.tar.gz
Algorithm Hash digest
SHA256 1a6a4cd2cb2deee8b3bee6aa1e0bedb4ceafdedbb775c07a507680ed4a715e79
MD5 b82f8de65c2723d92a07173fd32bb11a
BLAKE2b-256 94232885970f7e46aa5429bd6ca44fe87a230b7fb246841ff07548e7365089d7

See more details on using hashes here.

File details

Details for the file uv_update_check-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: uv_update_check-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for uv_update_check-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef992affe0e448a8605e9a1a433ca486bc2c93940e38a447c4b5d330e52ebbc8
MD5 212cf9d155f0762da672af93c20f54cf
BLAKE2b-256 e5bad6b58f3d272e0995701758b496e37b5d45952c73b67d810d19293952f99e

See more details on using hashes here.

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