google-site-verification
3F2Jbz15v4TUv5j0vDJAA-mSyHmYIJq0okBoro3-WMY
Contributors and contributions are welcome. Please read these guidelines first.
The project homepage is on GitHub.
Contributors can open pull requests from a fork targeting the parent mainbranch. But it may be a good first step to create an issue or open
a discussion topic.
You will need to clone the repository first. As there are no dependencies there isn't much to set up, so this should be pretty simple. The minimum recommended version of Python is 3.10 as some of the type hinting may be incompatible with earlier versions.
Only standard libraries are used. See the project TOML for more information.
Development dependencies are specified in the [tool.pdm.dev-dependencies] section of the TOML but these are purely indicative.
PDM is used to manage all dependencies. It is also used to automate certain tasks, such as running tests, as described in the section.
There are no root-level requirements*.txt files - but only a single (default, version-controlled, cross-platform)
pdm.lock lockfile. The lockfile is used with PDM to install all development dependencies, including the project itself, in editable mode where available:
pdm install -v --devNote
The pdm install command uses either the default lockfile (pdm.lock), or one specified with -L <lockfile>. Multiple lockfiles can be generated and maintained. Refer to the PDM install documentation for more information.
If you don't wish to install any editable dependencies, including the project itself, you can use:
pdm install -v --dev --no-editable --no-selfThe default lockfile can be updated with any and all upstream changes in the TOML-defined dependencies, but excluding any editable dependencies including the project itself, using:
pdm update -v --dev --no-editable --no-self --update-allThis will usually modify pdm.lock, in which case the file should be staged and included in a commit.
The lockfile can be exported in its entirety to another format, such as docs/requirements.txt using:
pdm export -v -f requirements --dev -o docs/requirements.txtFor more information on PDM lockfiles and installing requirements see the PDM documentation.
Tests are defined in the tests folder and can be run directly or via the Makefile, e.g. make unitests will run the unit tests. Linting can be performed with make lint, which requires ruff (specified in the dev. dependencies in the TOML). The doctests can be run with make doctests.
Project documentation is written and built using Sphinx, and deployed to Read The Docs.
The Sphinx documentation source pages and assets are contained in the docs/ subfolder. The HTML pages can be built locally on any branch (from the project root) using:
make -C docs htmlThe pages will be built inside docs/_build/html, with the index/home page being docs/_build/html/index.html.
In order for this to work first ensure that you have installed the documentation Python requirements listed in docs/requirements.txt. This can be done either via pip:
pip install -r docs/requirements.txtor via PDM:
pdm install -v --dev --no-editable --no-selfThe main CI workflow is CI YML, and there is also a static CodeQL Analysis YML.
The latest release is 1.11.1, and releases are created, tagged and published manually, not via a workflow.