Skip to main content

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 ....

  1. Install uv
  2. Go to a directory with source code for a Python package
  3. uvx testable-dependables

pipx

pipx is a way to run install and run Python applications in isolated environments.

  1. Install pipx
  2. pipx install testable-dependables
  3. Go to a directory with source code for a Python package
  4. testable-dependables

pip --user

Install testable-dependables to the Python user install directory. More details in the pip docs.

  1. pip install --user testable-dependables
  2. Go to a directory with source code for a Python package
  3. 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

  1. Install just: https://just.systems/man/en/packages.html
  2. 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)

Source distribution for testable-dependables 0.1.0
File Size Uploaded Provenance
testable_dependables-0.1.0.tar.gz 4.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for testable-dependables 0.1.0
File Interpreter ABI Platform
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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