# Python module for binary_c Based on a original work by Jeff Andrews, updated and extended for Python3 by Robert Izzard **THIS CODE IS VERY EXPERIMENTAL AND PROBABLY WILL NOT WORK** r.izzard@surrey.ac.uk http://personal.ph.surrey.ac.uk/~ri0005/binary_c.html 09/06/2019 Requirements --------------------- - Python3 - binary_c version 2.1+ - requirements.txt (no?) Environment variables --------------------- Before compilation you should set the following environment variables: - required: `BINARY_C` should point to the root directory of your binary_c installation - recommended: `LD_LIBRARY_PATH` should include $BINARY_C/src and whatever directories are required to run binary_c (e.g. locations of libgsl, libmemoize, librinterpolate, etc.) - recommended: `LIBRARY_PATH` should include whatever directories are required to build binary_c (e.g. locations of libgsl, libmemoize, librinterpolate, etc.) Build instructions --------------------- To build the module, make sure you have built binary_c (with `make` in the binary_c root directory), its shared library (with `make libbinary_c.so` in the binary_c root directory), and set environment variables as described above, then run the following code in t: ``` make clean make ``` Then to test the Python module: ``` python3 ./python_API_test.py ``` You will require whatever libraries with which binary_c was compiled, as well as the compiler with which Python was built (usually gcc, which is easily installed on most systems). TODO --------------------- - ?Put the header and src files in a dedicated directory - ?Have the compiled files be written into build - Use sphinx for auto generation of docs - Use queueing system/asynchronous task queue