Python binding for the nGraph Library
Build the nGraph Library (required)
Follow the build instructions to build nGraph. When you get to the cmake
command, be sure to specify the option that enables ONNX support in the Library:
$ cmake ../ -DNGRAPH_ONNX_IMPORT_ENABLE=ON
Next, clone the pybind11
repository:
$ cd ngraph/python
$ git clone --recursive -b allow-nonconstructible-holders https://github.com/jagerman/pybind11.git
Set the environment variables:
export NGRAPH_CPP_BUILD_PATH=$HOME/ngraph_dist
export LD_LIBRARY_PATH=$HOME/ngraph_dist/lib
export DYLD_LIBRARY_PATH=$HOME/ngraph_dist/lib # (Only needed on MacOS)
export PYBIND_HEADERS_PATH=pybind11
Install the wrapper (Python binding):
$ python setup.py install
Unit tests require additional packages be installed:
$ pip install -r test_requirements.txt
Then run a test:
$ pytest test/test_ops.py
$ pytest test/ngraph/
Running tests with tox
Tox is a Python virtualenv management and test command line tool. In our project it automates:
- running of unit tests with pytest
- checking that code style is compliant with PEP8 using Flake8
- static type checking using MyPy
- testing across Python 2 and 3
Installing and running test with Tox:
$ pip install tox
$ tox
You can run tests using only Python 3 or 2 using the -e
(environment) switch:
$ tox -e py36
$ tox -e py27
You can check styles in a particular code directory by specifying the path:
$ tox ngraph/
If you run into any problems, try recreating the virtual environments by
deleting the .tox
directory:
$ rm -rf .tox
$ tox