Skip to content

ryancheley/the-well-maintained-test

Repository files navigation

the-well-maintained-test

PyPI Changelog Tests License Code style: black Imports: isort Imports: flake8 pre-commit.ci status

Programatically tries to answer the 12 questions from Adam Johnson's blog post

Installation

pipx

The preferred method of installation for this tool is pipx.

pipx install the-well-maintained-test

virtual environment

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

Authentication

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.

the-well-maintained-test --help

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

Development

To contribute to this tool, first checkout the code. Then create a new virtual environment:

cd the-well-maintained-test
python3 -m venv venv
source venv/bin/activate

Or if you are using pipenv:

pipenv shell

Now install the dependencies and test dependencies:

pip install -e '.[test]'

To run the tests:

just test

To run mypy command you'll need to run

mypy --install-types

The commands below use the command runner just. If you would rather not use just the raw commands are also listed below

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