Development

For users who would like to actively develop with galois, these sections may prove helpful.

Install the dev dependencies

The development dependencies include packages for linting and testing the package. These dependencies are stored in requirements-dev.txt.

requirements-dev.txt
1pylint
2pytest
3pytest-cov
4pytest-benchmark

Install the dev dependencies.

$ python3 -m pip install -r requirements-dev.txt

Lint the package

Linting is done with pylint. The linter can be run from the command line as follows. There is also a .vscode/ folder with appropriate settings, if using VS Code.

$ python3 -m pylint --rcfile=setup.cfg galois/

Run the unit tests

Unit testing is done with pytest. The tests themselves are stored in tests/. We utilize test vectors stored in tests/data/. The tests can be run from the command line as follows. There is also a .vscode/ folder with appropriate settings, if using VS Code.

$ python3 -m pytest tests/

Build the documentation

The documentation is generated with Sphinx. The documentation dependencies are stored in docs/requirements.txt.

docs/requirements.txt
1sphinx>=3
2recommonmark>=0.5
3sphinx_rtd_theme>=0.5
4readthedocs-sphinx-ext>=1.1
5ipykernel
6pandoc
7numpy

Install the documentation dependencies.

$ python3 -m pip install -r docs/requirements.txt

Build the HTML documentation. The index page will be located at docs/build/index.html.

$ sphinx-build -b html -v docs/ docs/build/