Skip to content

flatsurf/cppyythonizations

Repository files navigation

Test

A collection of Pythonizations for cppyy.

These mostly work around known limitations of cppyy or provide some reusable extensions such as Python pickling of C++ classes.

Current Release Info

We release this package very frequently, typically with most pushes to the master branch.

Name Downloads Version Platforms
Nightly Build Conda Downloads Conda Version Conda Platforms

Install with Conda

You can install this package with conda. Download and install Miniconda, then run

conda config --add channels conda-forge
conda create -n cppyy -c flatsurf cppyy cppyythonizations
conda activate cppyy

Install with pip

pip install cppyythonizations

Build from the Source Code Repository

We are following a standard autoconf setup, which is a bit odd in the Python world. You can build this library with the following:

git clone --recurse-submodules https://github.com/flatsurf/cppyythonizations.git
cd cppyythonizations
./bootstrap
./configure
make
make check # to run our test suite
make install # to install into /usr/local

Note that this is a pure Python library, so essentially all this does is setup a setup.py file and run it.

Build from the Source Code Repository with Conda Dependencies

To build this package, you need a fairly recent C++ compiler and probably some packages that might not be readily available on your system. If you don't want to use your distribution's packages, you can provide these dependencies with conda. Download and install Miniconda, then run

git clone --recurse-submodules https://github.com/flatsurf/cppyythonizations.git
cd cppyythonizations
conda create -n cppyythonizations-build
conda env update -n cppyythonizations-build -f environment.yml
conda activate cppyythonizations-build
./bootstrap
./configure
make

Build from the Source Code Repository with Conda

The conda recipe in recipe/ is built automatically as part of our Continuous Integration. If you want to build the recipe manually, something like the following should work:

git clone --recurse-submodules https://github.com/flatsurf/cppyythonizations.git
cd cppyythonizations
conda activate root
conda config --add channels conda-forge
conda config --add channels flatsurf
conda install conda-build conda-forge-ci-setup=2
export FEEDSTOCK_ROOT=`pwd`
export RECIPE_ROOT=${FEEDSTOCK_ROOT}/recipe
export CI_SUPPORT=${FEEDSTOCK_ROOT}/.ci_support
export CONFIG=linux_
make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CI_SUPPORT}/${CONFIG}.yaml"
conda build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml"

You can then try out the package that you just built with:

conda create -n cppyythonizations-test --use-local cppyythonizations
conda activate cppyythonizations-test

Maintainers