/pyeantic

Python wrappers for e-antic

Primary LanguageM4GNU Lesser General Public License v3.0LGPL-3.0

Linux OSX disabled Windows disabled ppc64le disabled

Python Wrapper for E-ANTIC

This repository implements a Python wrapper for E-ANTIC powered by cppyy.

Current Release Info

We build and release this package with every push to the master branch. These releases are considered unstable and highly experimental. There are no stable releases yet.

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 pyeantic -c flatsurf pyeantic
conda activate pyeantic

The Python wrapper pyeantic is based on cppyy which is not available on conda-forge yet. Therefore, to use the Python wrapper, you need to install cppyy from PyPI:

conda install pip3
pip3 install cppyy

Run with binder in the Cloud

You can try out the projects in this repository in a very limited environment online by clicking the following links:

  • pyeantic Binder

Build from the Source Code Repository

We are following a standard autoconf setup, i.e., you can create the wrapper src/pyeantic with the following:

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

Build from the Source Code Repository with Conda Dependencies

If you don't want to use your distribution's packages, you can provide the dependencies with conda. Download and install Miniconda, then run

conda config --add channels conda-forge
conda config --add channels flatsurf # if you want to pull in the latest version of dependencies
conda create -n pyeantic-build cxx-compiler libtool automake e-antic
conda activate pyeantic-build
export CPPFLAGS="-isystem $CONDA_PREFIX/include"
export CFLAGS="$CPPFLAGS"
export LDFLAGS="-L$CONDA_PREFIX/lib -Wl,-rpath-link=$CONDA_PREFIX/lib"
export CC="ccache cc"
export CXX="ccache c++"
git clone --recurse-submodules https://github.com/flatsurf/pyeantic.git
cd pyeantic
./bootstrap
./configure --prefix="$CONDA_PREFIX"
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/pyeantic.git
cd pyeantic
conda activate root
conda config --add channels conda-forge
conda config --add channels flatsurf # if you want to pull in the latest version of dependencies
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 pyeantic-test --use-local pyeantic
conda activate pyeantic-test

Run Tests and Benchmark

make check runs all tests through the pytest interface.

Maintainers