This repository is under construction.
Clone the repository:
$ git clone https://github.com/petuum/pirlib $ cd pirlib
Install dependencies:
$ conda create -n pirlib python=3.8 $ conda activate pirlib $ pip install -e .
A toy example is provided in example/example.py
, first install its
dependencies:
$ pip install -r example/requirements.txt
The example can be run in three different ways:
$ python example/example.py
It should output the YAML representation of the example pipeline, followed by the outputs of the pipeline itself.
Open up example/example.py
and see what's inside.
$ bash example/run_inproc.sh
This script will (1) run the pircli
command to convert serialize
the pipeline into example/package_inproc.yml
, and then (2) run the
pircli
command to execute the pipeline locally, feeding in inputs
from example/inputs
and saving its outputs to example/outputs
.
Open up example/run_inproc.sh
and example/package_inproc.yml
and
see what's inside.
The following steps require a existing docker installation.
$ bash example/run_docker.sh
This script will (1) automatically dockerize the local environment and
serialize the pipeline into example/package_docker.yml
, (2) generate
a docker-compose workflow from the serialized pipeline and save it to
example/docker-compose.yml
, (3) execute the generated docker-compose
workflow.
Open up example/run_docker.sh
, example/package_docker.yml
, and
example/docker-compose.yml
and see what's inside.
- More comprehensive error checking and reporting.
- More pluggable system for input readers and output writers.
- Better thought out config file handling.
- Docker serve backend.
- Supporting factory functions that produce handlers dynamically.
- More comments and any unit tests at all.
- Packaging a pip-installable and registering to pypi.