Development
This package is developed using poetry which manages the development environment and python virtualenv for you. It is also used for dependency management, as a development script runner, and packaging.
Initial setup
Install a python interpreter for python >= 3.12. pyenv is a good choice to do this.
Install poetry (=>1.2.0) globally (i.e. not in a project virtualenv).
Run poetry install in the project root to create a virtualenv and install all development dependencies.
Run poetry run pre-commit install in the project root. This will install git hooks to enforce certain code quality requirements prior to committing changes to git.
Development Cycle
During the development process, the code should be linted and type checked. This can be achieved using the following commands:
For formatting & import sorting: poetry run poe format
For linting: poetry run poe lint
For type checking: poetry run poe mypy
For testing: poetry run poe test
To build the documentation: poetry run poe docs (Meaningful ocumentation is not yet included but is TBD.)
Each of these steps should be performed prior to creating a pull request. They can be executed all-at-once by executing
`shell
$ poetry run poe precommit
`