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
pyprojxCLI, 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]; the other capabilities above
are not implemented yet. The
0.0.1 release on PyPI is a
placeholder that predates the command.
$ 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.
pyprojx is written in Rust and will be distributed on PyPI as prebuilt binaries,
like Ruff and uv, so no Rust toolchain is needed to install it. Once released,
run it with uvx pyprojx 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.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyprojx-0.2.0.tar.gz | 116.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pyprojx-0.2.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| pyprojx-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| pyprojx-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| pyprojx-0.2.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| pyprojx-0.2.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 7.3 MB
Release files / pyprojx-0.2.0.tar.gz
| Download URL | pyprojx-0.2.0.tar.gz |
|---|---|
| Size | 116.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a33447fae30fc4b46ed5db67da06b3b0dba0feb46092a00db5f1a6a414ff5212
|
|
BLAKE2b-256 checksum How to use checksums |
91fcbe48b5b9167479ce8832856ec6866fd2480ed285a907096a214e1e2764dd
|
| 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.2.0-py3-none-win_amd64.whl
| Download URL | pyprojx-0.2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9aef7705933eb975dc94fb3f31515dc977d633072e5a02134573c23b1f4ef2e0
|
|
BLAKE2b-256 checksum How to use checksums |
ec4f252443c47c9e284db4336d059c9ffdba4042814f9b05c63e9b9d98452d2d
|
| 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.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pyprojx-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
da7d6399d30486b9004853fee218cd133dfecbcf33f660f7b895587341f0df58
|
|
BLAKE2b-256 checksum How to use checksums |
325b5650c43a989f6d067520e79c595ca0ccddf7a7ca5f278061dc9b43a0a859
|
| 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.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | pyprojx-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
1bac1df31496cac1a9549846fddc89d4ccc10c1cfb47c22cc96796a51f7d5d4d
|
|
BLAKE2b-256 checksum How to use checksums |
8a52a37f974fea9833cc7077da91a93b2e04b919c91745424b45e5fd72875cc5
|
| 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.2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | pyprojx-0.2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5eea9390d851671ee1b808b0b15d0409f72578acd6d5b72b25d8afff78e33adf
|
|
BLAKE2b-256 checksum How to use checksums |
d6069da33c80b1b387872f73109efd3faa07640315bf62f77125402e5dc6b1b0
|
| 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.2.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | pyprojx-0.2.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
d53340ba789d38a36a2e421ed7f314845c267e12a05929cd03139be4dfcb7282
|
|
BLAKE2b-256 checksum How to use checksums |
889029df11d48565e18c5f55b00a51d4d0251e57553aa7fd25c1e5b2cd793119
|
| 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}
|