testable-dependables
testable-dependables outputs the testable versions of Python for use in a justfile or CI/CD workflow instead of hardcoding them. Automatically stay on top of supported Python versions.
It supports modern Python packages that use the pyproject.toml standard (aka PEP 621).
Why?
I wanted a command to automatically test all supported Python versions for a library based on its pyproject.toml Python requirements, i.e. not hardcoding versions somewhere.
Here's an example justfile that utilizes testable-dependables and uv to run unit tests in isolated environments for each supported Python version.
# Run tests across all supported Python versions
test-all-versions:
#!/usr/bin/env bash
set -euo pipefail
for version in $(uvx testable-dependables); do
echo -e "\n=== Testing with Python $version ==="
uv run --all-extras --python "$version" pytest
echo -e "\n=== Tests completed for Python $version ===\n"
done
echo "All tests completed successfully"
Usage
uvx
uv is an extremely fast Python package and project manager, written in Rust. uvx is an alias for uv tool run ....
- Install
uv - Go to a directory with source code for a Python package
uvx testable-dependables
pipx
pipx is a way to run install and run Python applications in isolated environments.
- Install
pipx pipx install testable-dependables- Go to a directory with source code for a Python package
testable-dependables
pip --user
Install testable-dependables to the Python user install directory. More details in the pip docs.
pip install --user testable-dependables- Go to a directory with source code for a Python package
testable-dependables
CLI arguments
path
testable-dependables optionally accepts a path as the first argument. Defaults to . for the current directory.
uvx testable-dependables /path/to/project
--json
Output as json.
uvx troml --json /path/to/project
--verbose
Outputs more verbose information.
uvx troml --verbose /path/to/project/
Development
- Install
just: https://just.systems/man/en/packages.html just fetch
Run from source
uv run testable-dependables [PATH-TO-PYPROJECT-TOML]
Commands
- unit tests (via
pytest):just test - linting (via
ruff):just lint - type checking (via
mypy):just type - unit test coverage (via
coverage.py):just coverage - run 'em all:
just dev
Inspiration
Metadata
Release files for testable-dependables 0.1.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 | Provenance | |
|---|---|---|---|---|
| testable_dependables-0.1.0.tar.gz | 4.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| testable_dependables-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.9 kB
Release files / testable_dependables-0.1.0.tar.gz
| Download URL | testable_dependables-0.1.0.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8db7acfcf52148f9a631095ba054da9ff134adcef7f89d963e40df82c521c985
|
|
BLAKE2b-256 checksum How to use checksums |
f48b427f1b106b5df40731fa5a61341e5b65b69e0d777bcb9ae0920149400d29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2025.
Transparency logRelease files / testable_dependables-0.1.0-py3-none-any.whl
| Download URL | testable_dependables-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0b3b3758c3abc22652e781705a8e48b64dfb65583b1410ec78f2b9901635640
|
|
BLAKE2b-256 checksum How to use checksums |
ea4633ab3426245b83fe60e8a73617ed06e0ce2da50b89ed464bc4ae475b1da7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2025.
Transparency logSecurity for testable-dependables 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for testable_dependables-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.