Development Guide
This developers guide briefly goes through setting up the project.
It is not intended as a full guide for development of this project.
Most of the guidelines are copied from the developer’s guide
of the iniabu
project, which can be found
here.
Testing
Full testing, linting, etc. is built-in using nox
.
To make it work, ensure that nox
is installed by running:
pip install nox
Then you can invoke nox by simply calling it within the project folder via:
nox
You can also set up your IDE to run any of the tests.
Required dependencies if you prefer not testing with nox
can be found in the requirements-dev.txt
file.
Pre-commit
Pre-commit will format code according to specs prior to committing it to GitHub. To install the pre-commit hooks, go to the code folder and run the following command (after installing pre-commit using pip or pipx):
$ pre-commit install
This will install the hooks that are defined in .pre-commit-config.yaml.
Test Coverage
Coveralls and pytest-cov is used to automatically determine the test coverage.
Note
If you are using PyCharm, you should set up your testing environment
such that it contains in the Additional Arguments section the flag
--no-cov
.
Otherwise, coverage reporting in PyCharm will not work.
Warning
Code that contains the @njit
or any numba JIT decorator
is currently excluded from coverage using the # pragma: nocover
.
Make sure you include useful tests for these routines nevertheless!
However, due to existing issues, these jited methods would not show up as covered.
Documentation
This documentation is written in reText
and automatically generated using sphinx
.
If you would like to run it locally,
install the requirements-dev.txt
packages.
From within the docs
folder,
you can then generate the documentation via:
sphinx-build -b html docs docs/_build/html/
This creates the the html documentation
in the docs/_build
folder.