Skip to content
/ FP17 Public

AutoWIG: Automatic Generation of Python Bindings for C++ Libraries [PeerJ Computer Science]

License

Notifications You must be signed in to change notification settings

StatisKit/FP17

Repository files navigation

https://travis-ci.org/StatisKit/FP17.svg?branch=master https://ci.appveyor.com/api/projects/status/bwc7elajp21arif0/branch/master

Material for the paper entitled "AutoWIG: automatic generation of Python bindings for C++ libraries" and submitted to PeerJ Computer Science

This repository contains supplementary material for the reproducibiliy of computational studies performed in the article "AutoWIG: automatic generation of Python bindings for C++ libraries" written by:

  • Pierre Fernique,
  • Christophe Pradal.

This article has been submitted to the "PeerJ Computer Science" journal. Here is the the citation formated as the bibtex standart.

@article{FP17,
  author    = {Pierre Fernique and Christophe Pradal},
  title     = {{AutoWIG}: Automatic Generation of {Python} Bindings for {C++} Libraries},
  journal   = {CoRR},
  volume    = {abs/1705.11000},
  year      = {2017},
  url       = {http://arxiv.org/abs/1705.11000},
  timestamp = {Wed, 07 Jun 2017 14:40:24 +0200},
  biburl    = {http://dblp.uni-trier.de/rec/bib/journals/corr/FerniqueP17},
  bibsource = {dblp computer science bibliography, http://dblp.org}
}

These studies are formatted as pre-executed Jupyter notebooks. Refers to the index.ipynb notebook which presents and references each study.

Test it !

Using Docker images and Binder servers , we are able to provide ways to reproduce the article studies without installing the StatisKit software suite.

Online with Binder

Warning

Currently, Binder does not work with this repository due to timeouts.

To reproduce the studies online, use this server.

Note

This server corresponds to the one used for the article. Most recent server can be runned using this link.

On your computer with Docker

To reproduce the studies with Docker use these images. After installing Docker, you can type the following commands in a shell:

  • For the Python 2 version

    docker run -i -t -p 8888:8888 statiskit/fp17:v1.0.0-py2k
  • For the Python 3 version

    docker run -i -t -p 8888:8888 statiskit/fp17:v1.0.0-py3k

Then, follow the given instructions.

Note

These images correspond to the ones used for the article. Most recent images can be runned using these commands in a shell:

  • For the Python 2 version

    docker run -i -t -p 8888:8888 statiskit/fp17:latest-py2k
  • For the Python 3 version

    docker run -i -t -p 8888:8888 statiskit/fp17:latest-py3k

Install it !

You can also install required packages on your computer to reproduce these studies.

Warning

To use the examples without Docker you must first follow instructions available on this page.

In order to ease the installation of these packages on multiple operating systems, the Conda package and environment management system is used. For more information refers to the StatisKit software suite documentation concerning prerequisites to the installation step. Then, to install the required packages, proceed as as follows:

  1. Clone this repository,

    git clone --recursive https://github.com/StatisKit/FP17
  2. Create a Conda environment containing the meta-package fp17,

    • For the Python 2 version

      conda create -n fp17py2k fp17=1.0.0 python=2 -c statiskit -c defaults --override-channels
    • For the Python 3 version

      conda create -n fp17py3k fp17=1.0.0 python=3 -c statiskit -c defaults --override-channels

    Note

    This meta-package corresponds to the one used for the article. Most recent meta-package can be installed by replacing fp17=1.0.0 by fp17 in previous command lines

  3. Activate the Conda environment as advised in your terminal.

  4. Enter the directory containing Jupyter notebooks,

    cd FP17
    cd share
    cd jupyter
  5. Launch the Jupyter the index.ipynb notebook,

    jupyter notebook index.ipynb
  6. Execute the index.ipynb notebook to execute all examples or navigate among referenced notebooks to execute them separatly.