Features#
This code is used to showcase a number of good software practices:
Argument validation with type annotations and runtime checking using the
typingmoduleConsistent error messages for invalid operations and inputs via custom
ExceptionsUnit tests with
pytest. Usetests/convtest.pyto set global testing variablesExample notebooks and scripts
Google-style documentation generated with
sphinxPre-commit routine set up in file
.pre-commit-config.yaml. It includes:Formatting with
blackLinting with
ruffvia pre-commitType checking with
mypyAdditional checks and fixes (trailing whitespace removal, enforcing empty line at EOF, YAML syntax checks, blocking large files) via
pre-commit-hooks
Modern packaging, easy installation, and project settings with
pyproject.tomlAutomated test suite and coverage reporting integrated with GitHub Actions; coverage reports can be published to GitHub Pages. See
.github/workflows/tests.ymlAutomatic documentation build and deployment to GitHub Pages with GitHub Actions. Setup in
.github/workflows/docs.ymlEasy contribution workflow for new features and improvements.