Project Structure¶
This document gives an overview of the project structure. Furthermore the repository contains a number of various configuration files whose functions are briefly introduced below.
- src/
This is where the source code of the project resides.
- tests/ and tests_cython/
Here are the unittests of the project. There are tests for python and cython code.
Configuration files¶
- .ci/, .gitlab-ci.yml
.gitlab-ci.yml defines the CI/CD structure for the project. The individual jobs are:
Linting
Style guide checking
Testing with tox
Test coverage generation
Building sources distribution packages
Creating binary distribution packages (Linux only)
Creating new releases
Updating the documentation
The shell scripts in the
.ci
folder are used to create wheel binary packages. The Dockerfiles represent the images on which the CI/CD jobs are executed.
- .gitignore
Git configuration file to manage the tracking of files within the version control system.
- .coveragrc
Test coverage configuration file for the Coverage.py package.
- dev-requirements.txt
Here the development dependencies of the project are specified.
- LICENSE
The license under which the project is published.
- manifest.in
This file specifies additional files that should be packaged with the source distribution of the package. Read more about packaging source distributions.
- setup.py
The setup.py makes the repository a python package. It is used to provide the package with meta information, to include the C extensions and to build the project.
- README.md, CHANGELOG.rst, .readthedocs.yml and docs/
All these files are used to describe the project. The
README.rst
acts as the landing page of the repository. theCHANGELOG.rst
contains notable changes between different versions. and.readthedocs.yml
controls the generation of documentation at https://readthedocs.org/.The docs folder contains the detailed documentation of the project. The format of the files is reStructuredText and is used in combination with the Sphinx library to generate the documentation.
- tox.ini
Tox is a test automation system intended to improve the testing workflow. Tox runs the pytest module to execute the tests. This project makes use of the test environment generation functionality to run tests against a combination of different requirement configurations.