Skip to content

quartictech/quartic-python

Repository files navigation

Python bindings for Quartic platform

This repository contains Python bindings for the Quartic platform.

Components

  • quartic.pipeline.runner contains the executor for programs written in the Quartic Python DSL. This is used within the Quartic platform to evaluate and execute pipeline DAGs.
  • quartic.pipeline.validator can be used during local development to test pipeline scripts are sane.

Getting set up

virtualenv .env --python=`which python3`
. .env/bin/activate
pip install -r requirements.txt

Running tests

python setup.py test

Running linter

python setup.py lint

Adding new dependencies

Here are the rules:

  • Things that are needed at runtime (i.e. when the bindings are deployed) should go in setup.py.
  • Things that are only needed for dev/test (e.g. pytest) should go in requirements.txt.
  • Always use pinned versions (i.e. pyproj==1.9.5.1, not pyproj) to maximise determinism.
  • Never just dump the content of pip freeze into setup.py/requirements.txt - this includes transitive dependencies, making things very noisy and difficult to maintain.

Notes on the repo layout

We're trending toward the layout described here: Packaging a python library.

License

This project is made available under the BSD 3-Clause License.