Add first implementation of CLI for run-pipe
The main points of this MR are:
- Add CLI infrastructure with autocomplete support.
- Add setup.py so you can
pip install .
the library to use it. - Add flake.nix for dev shell.
- Made the Pipe task arguments a class property instead of an instance property, which is needed to run a pipe in isolation
- Added
bindings
, i.e. mapping between pipeline-defined-containers and pipe arguments, so Pipes don't have to know anything about pipelines. - General cleanups + add
__slots__
and@dataclass
to many classes.
P.S. To enable autocomplete, first install the command by running pip install .
, and then register the autocomplete in the shell by running eval "$(_PYPE_COMPLETE=zsh_source pype)"