Developer Guide
Each library is built as a standalone library, allowing you use them individually. The sub libraries must use pywrapid libraries where wrappers already exist and should be compatible with pywrapid config.
Functions deemed useful for other users of pywrapid should go to utils.
Keep in mind: - Do not mix other fixes or features into your feature branch, keep it canonical - Rebase if you fall behind - Make sure you tests cover your changes and tox reports all green before you send a pull request - Force push is not allowed, by anyone
To build a wheel:
pip install tox
tox
or
pip install build
python -m build
Linting and tests
Tests should be created for all new functionality
Feature branch must pass linting and tests before pull request is made
Builds will run tox, and so should you
Linters used:
pylint
flake8
mypy
black
isort
bandit
Test suite:
pytest
Project structure
pywrapid and its sub libraries use the following folder structure:
pywrapid
├───src
│ ├───pywrapid
│ │ ├───sublibrary1
│ │ │ ├───exceptions.py
│ │ │ ├───library_code_1.py
│ │ │ ├───library_code_n.py
│ │ │ └───requirements.txt
│ │ ├───sublibrary2
│ │ │ ├───exceptions.py
│ │ │ ├───library_code_1.py
│ │ │ ├───library_code_n.py
│ │ │ └───requirements.txt
│ │ ├───sublibraryN
│ │ │ ├───exceptions.py
│ │ │ ├───library_code_1.py
│ │ │ ├───library_code_n.py
│ │ │ └───requirements.txt
├───docs
│ ├───src
│ │ ├───documentation-file1.rst
│ │ ├───documentation-fileN.rst
│ │ └───conf.py
├───tests
│ ├───test_pywrapid_modulename_filename1.py
│ ├───test_pywrapid_modulename_filenameN.py
│ ├───test_integration_testgroup1.py
│ ├───test_integration_testgroupN.py
│ ├───test_user_testgroup1.py
│ └───test_user_testgroupN.py
├───tox.ini
├───requirements.txt
└───pyproject.toml