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

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.2.0.tar.gz (27.5 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.2.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: uv_update_check-0.2.0.tar.gz
  • Upload date:
  • Size: 27.5 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.2.0.tar.gz
Algorithm Hash digest
SHA256 0de40de5b3ca8c42fbb921713066e417cda0ea01c7a6496f8ea41bc8addea47e
MD5 919f304c851b2520ca66a571e753b3fc
BLAKE2b-256 d5037b33b8d4ee31b4d59f2074856d546e38d65e0baccf04a9d6f5b5e4331caf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: uv_update_check-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bdf066d5e947c17b6c922ebfaf45a49ea1795d8ac95aa327bfb8e72525ab05fe
MD5 19faf0697cf7ef8d5e92a0f2885d6429
BLAKE2b-256 c8da863450f2ea5a0d363df79294ee207a44217229ebe0f51c69f13c6a2adf81

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