Major overhaul:

- transition to `pyproject.toml` config
- include license (Apache-2.0)
- add dev tools
- add documentation config (`mkdocs` based)
- turn `README.md` into a symlink to docs `index.md`
- add convenience scripts for testing and linting
This commit is contained in:
2023-03-09 12:08:59 +01:00
parent 2364396878
commit 295c9ed6c7
16 changed files with 446 additions and 72 deletions

16
scripts/lint.sh Normal file
View File

@ -0,0 +1,16 @@
#!/usr/bin/env bash
# Runs type checker and linters.
# Ensure that we return to the current working directory
# and exit the script immediately in case of an error:
trap "cd $(realpath ${PWD}); exit 1" ERR
# Change into project root directory:
cd "$(dirname $(dirname $(realpath $0)))"
echo 'Performing type checks...'
mypy
echo
echo 'Linting source and test files...'
flake8 src/ tests/
echo -e 'No issues found.'

17
scripts/test.sh Normal file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env bash
# Runs unit tests and prints only coverage percentage, if successful.
# If an error occurs, prints the entire unit tests progress output.
# Ensure that we return to the current working directory in case of an error:
trap "cd $(realpath ${PWD})" ERR
# Change into project root directory:
cd "$(dirname $(dirname $(realpath $0)))"
coverage erase
# Capture the test progression in a variable:
typeset progress
progress=$(coverage run 2>&1)
# If tests failed or produced errors, write progress/messages to stderr and exit:
[[ $? -eq 0 ]] || { >&2 echo "${progress}"; exit 1; }
# Otherwise extract the total coverage percentage from the produced report and write it to stdout:
coverage report | awk '$1 == "TOTAL" {print $NF; exit}'