Skip to main content

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

Project description

uuc — uv update check

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

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

# Include pre-release versions
uuc --pre

Options

Flag Description
-u, --update Rewrite pyproject.toml with new versions
-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.1.0.tar.gz (13.7 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.1.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: uv_update_check-0.1.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","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.1.0.tar.gz
Algorithm Hash digest
SHA256 eb020082235cfefea3db106fd55e4d5cdb2dc063fbd9e2c6a18ff0fa1f933577
MD5 df99337944c67936584a514842a7d0c9
BLAKE2b-256 db0613cf1e2cc8f17ffbe96a2e9467f9071c87466639938986e43147272e2fa2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: uv_update_check-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd486e35a8b7878459bf98557470ab3011b9a9256e972ec1b9c35f0f7a2e225f
MD5 887f097442c9c9298f2ed4ec31a7af49
BLAKE2b-256 cdce2a7e9b0e4eb0cca4b5b4d4572121b9475c3489474cccecbb2f2912a2f0c1

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