Programatically tries to answer the 12 questions from Adam Johnson's blog post
The preferred method of installation for this tool is uv.
uv tool install the-well-maintained-test
Alternatively, you can use pipx.
pipx install the-well-maintained-test
This tool can be installed in a virtual environment using pip:
Create your virtual environment
python3 -m venv venv
source venv/bin/activate
Install with pip
python -m pip install the-well-maintained-test
The GitHub API will rate limit anonymous calls. You can authenticate yourself with a personal token (documentation on how to generate is here)
Run this command and paste in your new token:
the-well-maintained-test auth
This will create a file called auth.json in your current directory containing the required value. To save the file at a different path or filename, use the --auth=myauth.json option.
Usage: the-well-maintained-test [OPTIONS] COMMAND [ARGS]...
Programatically tries to answer the 12 questions from Adam Johnson's blog post
https://adamj.eu/tech/2021/11/04/the-well-maintained-test/
package is a package on pypi you'd like to check:
the-well-maintained-test package the-well-maintained-test
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
auth Generates a json file with your GitHub Personal Token so...
check Check your GitHub API Usage Stats
package Name of a package on PyPi you'd like to check
questions List of questions tested
requirements Loop over a requirements.txt file
To contribute to this tool, first checkout the code. This project uses uv for modern Python dependency management.
cd the-well-maintained-test
uv sync --extra test
This will create a virtual environment and install all dependencies including test dependencies.
To run the tests:
uv run pytest
If you prefer not to use uv, you can still use traditional tools:
cd the-well-maintained-test
python3 -m venv venv
source venv/bin/activate
pip install -e '.[test]'
To run the tests:
just test
With uv:
# Run the CLI tool
uv run the-well-maintained-test --help
# Run tests
uv run pytest
# Run mypy
uv run mypy src/the_well_maintained_test/*.py --no-strict-optional
# Install development dependencies
uv sync --extra dev
The commands below use the command runner just. If you would rather not use just the raw commands are also listed above.
To run mypy command you'll need to run
mypy --install-types
Then, to run mypy:
just mypy
OR the raw command is
mypy src/the_well_maintained_test/*.py --no-strict-optional
You can also do a pre-commit check on the files by running
just check
OR the raw commands are
pre-commit run --all-files
mypy src/the_well_maintained_test/*.py --no-strict-optional
This will run several pre-commit hooks, but before that it will run mypy