Contributing to the code base#
The testing process of Pinttrs uses pytest and Nox. Two make targets are defined to help you run the tests:
make test: run pytest without creating a new environment (uses equivalent to
make nox-test: run pytest in a virtual environment for each selected Python version.
Virtual environment issues#
This project uses PDM’s PEP 582 support, meaning that it does not require using a virtual environment for development.
We recommend deactivating Conda’s
if you don’t want to use a virtual environment and instead rely on PDM’s PEP
You may however use one if that suits you: in that case, you’ll want to configure PDM so as to use the current virtual environment as instructed in the PDM docs:
pdm config --local use_venv true
Using a Conda virtual environment#
Developing Pinttrs using a Conda virtual environment is supported. To get started, initialise an empty Conda environment:
conda create --name pinttrs
Then activate it and initialise it:
conda activate pinttrs make conda-init
Initialisation is possible only if a conda-lock file
requirements/conda-lock.yml already exists. If not, you first have to generate
it using conda-lock (see Managing dependencies).
Dependencies are managed using PDM. The conda-lock utility is also configured to help create reproducible Conda lock environments. For simplicity, dedicated Make targets lock PDM, Conda or both environments:
make pdm-lock # lock PDM dependencies make conda-lock # lock Conda dependencies make lock # chains PDM and Conda locking
Building the documentation#
To build the documentation, use the dedicated Make target:
Incremental autobuild is also supported:
Not planned yet
Automate Conda packaging.
Publish to conda-forge instead of a private channel on Anaconda Cloud.