Skip to main content

pyprojx

Version-aware intelligence for pyproject.toml—check, explain, and safely evolve your Python configuration.

Python project configuration brings together packaging standards and settings for tools that evolve independently. pyprojx aims to help you understand and safely maintain that configuration for the versions your project actually uses, with analysis as the foundation for useful explanations and reviewable improvements.

Planned capabilities

  • Validate Python/PyPA sections and tool-specific configuration, starting with uv, Ruff, and ty.
  • Explain configuration issues, including unknown settings, deprecated options, and conflicts, with useful diagnostics and suggested fixes.
  • Provide formatting, a pyprojx CLI, and language-server features such as completion, hover documentation, and quick fixes.

Guided editing, configuration migrations, and generation are possible future directions built on that foundation—not committed features or current capabilities.

The focus is pyproject.toml, not general project management. pyprojx is intended to complement tools like uv, Ruff, and ty—not replace package management, Python source linting, or type checking.

Current status

pyprojx is in early development. pyprojx check reports TOML syntax errors, invalid UTF-8, and byte order marks in pyproject.toml, warns about TOML 1.1 syntax that tomllib in Python 3.14 and earlier rejects, and validates [build-system], [project] (including dependencies, extras, license metadata, and trove classifiers), and [dependency-groups]. It also reports features, such as license expressions, that the build backend versions allowed by [build-system] lack, and checks [tool.ruff], [tool.ty], and [tool.uv] options and values, Ruff's rule selectors, ty's rules, and the indexes, extras, and groups [tool.uv] refers to, against the Ruff, ty, and uv versions the project uses: those locked in uv.lock or pylock.toml if there is one, otherwise those its requirements or required-version allow. Each of those diagnostics says which versions it was checked against and where they came from. pyprojx check --fix fixes what it can without changing what the configuration means, such as moving Ruff's top-level linter settings into lint, keeping the rest of the file as it was. The other capabilities above are not implemented yet.

$ pyprojx check
error[invalid-toml]: missing value
 --> pyproject.toml:2:14
  |
2 | line-length =
  |              ^

Found 1 error.

pyprojx check checks the nearest pyproject.toml in the current directory or its parents, or the file or directory you pass. It exits with 0 when there are no errors (warnings do not fail the check), 1 when there are, and 2 when the file cannot be checked.

With --fix, it applies safe fixes, which tools read as they read the original, writes the file, and reports what is left. --unsafe-fixes adds fixes that may change what the configuration means, such as renaming a misspelled key to the closest known one; review those before committing them.

pyprojx is written in Rust and distributed on PyPI as prebuilt binaries, like Ruff and uv, so no Rust toolchain is needed to install it. Run it with uvx pyprojx check, or install it with uv tool install pyprojx.

Learn more and contribute

  • Project vision: intended capabilities, inspiration, and scope.
  • Contributing: development setup, validation, and proposing changes.
  • Publishing guide: maintainer release instructions and current automation limits.

License

MIT, copyright 2026 Jake Van Slyke.

Release files for pyprojx 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyprojx 0.6.0
File Size Uploaded
pyprojx-0.6.0.tar.gz 200.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyprojx 0.6.0
File
pyprojx-0.6.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
pyprojx-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
pyprojx-0.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
pyprojx-0.6.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
pyprojx-0.6.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 8.3 MB

Release files / pyprojx-0.6.0.tar.gz

Download URL pyprojx-0.6.0.tar.gz
Size 200.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6a25ae9eebb5cb6877356aec7ef097a8f9e1d11ac5fdab21335dce90b7081340
BLAKE2b-256 checksum
How to use checksums
daf1463436645add6c7adc4ae5b63089b8f4ecd0666353e457721665a9f6a238
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyprojx-0.6.0-py3-none-win_amd64.whl

Download URL pyprojx-0.6.0-py3-none-win_amd64.whl
Size 1.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
f1222803b60e8080ae06c6e7481a6ef1aff6f8bf2afb9813421dff7e06b0a51e
BLAKE2b-256 checksum
How to use checksums
189ad9fb18e26c87c64f275dda29f7be7083342af821ff60696b9d74f941362f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyprojx-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyprojx-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
01573f576be7f11514b00028b1cf7619242857c480a725123290d6e3c0806f36
BLAKE2b-256 checksum
How to use checksums
f6e47467d78f347a9925cabb9517c266fb33b7112db7b63bbd939fc94bbae585
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyprojx-0.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pyprojx-0.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
7ef344e116fa13d9c9743e9d678adf602fedf102326a1686eafd48431911b070
BLAKE2b-256 checksum
How to use checksums
0b28d5c5d213e5c96f69d04c1b8ff8905240097ffb2caeb494b1ef2a3ae17547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyprojx-0.6.0-py3-none-macosx_11_0_arm64.whl

Download URL pyprojx-0.6.0-py3-none-macosx_11_0_arm64.whl
Size 1.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a5088e50f86e8547ceca5107e753e1241d96c5c32134f46532d3f665c59e8f9f
BLAKE2b-256 checksum
How to use checksums
f80bc4f59639b09eadecf49624da7710fe0be0ba4b084bfc51df6ab49e0857f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyprojx-0.6.0-py3-none-macosx_10_12_x86_64.whl

Download URL pyprojx-0.6.0-py3-none-macosx_10_12_x86_64.whl
Size 1.6 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c49f3315caae202901c5aa288d4a591f969187491a6f397938c974bc1655a5ad
BLAKE2b-256 checksum
How to use checksums
53ac9234a220d9391b7fb282b33760fd0ad428ab8b42396537c98e4956bc2195
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.6.0 This release

6 release files

0.5.0

6 release files

0.4.0

6 release files

0.3.0

6 release files

0.2.0

6 release files

0.1.0

6 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page