=========== 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 ============= 1. Install a python interpreter for `python >= 3.12`. `pyenv `_ is a good choice to do this. 2. Install `poetry `_ (=>1.2.0) globally (i.e. not in a project virtualenv). 3. Run `poetry install` in the project root to create a virtualenv and install all development dependencies. 4. 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 ```