A template for your awesome C++/Python scientific computing software project
Project description
ditalini
Philip Mocz (2024) Flatiron Institute
A modern template for your awesome C++ scientific computing software library/app 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 automatically published at PyPI with each version release. Documentation is automatically generated at readthedocs.
Installation
The project can be installed in a few different ways.
Get the Python Package
Obtain the published version of the package with:
pip install ditalini
Use the package in your own Python script, e.g.:
import ditalini
sim = ditalini.Simulation(42)
Build with pip
The project can also be built locally. Clone this repository and then do:
pip install .
Build with CMake
The repository can also be built with CMake. Clone this repository and then do:
mkdir build
cd build
cmake ..
make
Documentation
Documentation is automatically generated and hosted at readthedocs with each push.
First, Doxygen creates documentation for the C++ Library.
Then, Sphinx with the Breathe
extension creates a final documentation for the entire project (C++ library and Python package).
To build the documentation on your own, you can type make doxygen
and make sphinx
in the build/
directory.
CI
The .github/workflows
directory contains this projects' continuous integration workflows
for GitHub Actions.
The python-package
workflow will automatically install Python dependencies and run tests 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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ditalini-0.1.4.tar.gz
.
File metadata
- Download URL: ditalini-0.1.4.tar.gz
- Upload date:
- Size: 52.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 979d5df352590d1901505c561ecaa4fd9ed82ae4e33fcab3d1c3f85458aa62f0 |
|
MD5 | 28f6814e82043deef1682148d3677c56 |
|
BLAKE2b-256 | cb2c7d6db5fc684b8507505c443d63e7d15eacdb1eec6a2626d67d26f444a8b9 |