Philip Mocz (2024) Flatiron Institute
A modern template for your awesome C++ scientific computing software app/library with wrappers for Python. This repository sets up a project for a standalone C++ library and app, that is also wrapped into a Python package using nanobind and scikit-build-core. The package is set up to be publishable at PyPI.
The project can be installed in a few different ways.
Obtain the package with:
pip install ditalini
The package can then be used in your Python script
import ditalini
The project can also be built locally. Clone this repository and then do:
pip install .
The repository can also be build with CMake. Clone this repository and then do:
mkdir build
cd build
cmake ..
make
Documentation can be generated with
make doc
The .github/workflows
directory contains this projects' continuous integration workflows
for GitHub Actions.
The python-package
workflow will automatically install Python dependencies, run tests,
and lint with a variety of Python versions on pushes.
The python-publish
workflow will automatically upload this repository to PyPI when a release is created. The user must set a secret PYPI_API_TOKEN
variable in Github.