Contributing

Setting up a development environment

git clone https://github.com/gusbeane/vortrace.git
cd vortrace
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"

Running tests

Python tests:

pytest

C++ tests (requires Catch2 >= 3.1):

mkdir build && cd build
cmake .. -DBUILD_CPP_TESTS=ON
cmake --build .
ctest --output-on-failure

Linting

pylint --rcfile=.pylintrc vortrace

The project follows the Google Python style guide with some checks disabled (see .pylintrc).

Building the documentation

pip install -e ".[docs]"
cd docs
make html

Open _build/html/index.html in your browser to view the result.

Code style

  • C++: C++17, no external dependencies beyond the bundled nanoflann

  • Python: thin wrapper around the C++ backend; core logic belongs in C++

  • Library code should not print to stdout by default – use the runtime verbose flag or the vortrace::warn() callback

  • Optional dependencies (h5py, matplotlib) are imported lazily