Welcome to MOCPy’s documentation!
Contribute¶
For contribution purposes the best thing to do is setting up a python environment that will act independently from your current installed interpreter and package manager.
Setting up the environment¶
Here we highlight two ways to set up an environment. Using conda (installed from miniconda or anaconda) or using the pip package virtualenv . Choose the one you prefer, or your own one.
Using conda¶
Set up the conda environment and activate it:
conda create -n mocpy-dev python==3.12.* source activate mocpy-dev
Once you are done with your developments you can deactivate your conda environment:
conda deactivate
Using virtualenv¶
Go to your home location:
cd ~
Set up the virtual environment there:
virtualenv -p /usr/bin/python3 mocpy-env
Virtualenv
will create a directory named mocpy-env
in your home.
This directory contains a new independent python interpreter
(in this case, a python3 one, instanciated from /usr/bin/python3)
along with a new empty pip package manager.
Activate your virtual environment:
source ~/mocpy-env/bin/activate
pip list
will tell you that there is no package installed and python
opens a session with the mocpy-env
interpreter.
You can now install all the necessary pip packages for developing and testing MOCpy:
pip install .[dev]
Once you are done with your developments you can deactivate the virtual env:
deactivate
Pre-commits setup¶
You’ll need to install the pre-commits in your
.git/hooks
to check your code locally:pre-commit install
It will run linting and formatting tests at each of your commits.
Now build package¶
You will need to install maturin, a tool that builds and publishes crates and rust binaries as python packages:
pip install maturin
Move to your root’s mocpy location and run maturin:
maturin develop --release
This step will inform you of any issue in the rust part.
After a new version of mocpy goes out, if a
maturin develop --release
does not actualize yourCargo.toml
file, you might need to before executing thematurin
command again:rm Cargo.lock && cargo clean
Running the python tests¶
Once your environment is set up and activated you can run the tests
To run the automated tests and the doctring examples, go to the repo folder and type:
python -m pytest -v python/mocpy
To run the tests with coverage report locally:
python -m pytest -v python/mocpy --cov-report=term --cov=python/mocpy
When contributing to the notebooks:
python -m pip install .[notebooks] python -m pytest --nbmake -n=auto "./notebooks"
You also can have a html output of the coverage with the flag --cov-report=html
.
This will generate an htmlcov
folder where all the static html files can be found.
Building the documentation¶
To see the documentation locally, you’ll need to install the additional python dependencies with
pip install .[docs]
and the pandoc software (sudo apt-get install pandoc
on ubuntu,
choco install pandoc
on windows, brew install pandoc
on mac,
pacman -S haskell-pandoc
on arch).
To build the docs from the repo directory:
cd docs make html cd ..
You will find the html index file in the docs/_build/html
folder.