This is the first release of _Dagger_ (`py-dagger`in the PyPI registry).
It includes the following features:
- Declarative definition of `DAG`s and `Task`s.
- Composition of DAGs inside of other DAGs.
- Inputs coming `FromParam(parent_param: str)` and `FromNodeOutput(node: str, output: str)`.
- Outputs retrieved directly `FromReturnValue`, or from a deep `FromKey` or `FromProperty`.
- Built in `AsJSON` and `AsPickle` serializers. JSON is the default serializer for every input/output.
- Imperative definition of DAGs via a Pythonic Domain-Specific Language (DSL).
- Running DAGs/Tasks locally.
- Running DAGs/Tasks from a Command-Line Interface (CLI).
- Preparing DAGs to run on Argo Workflows, compiling the data structures to the YAML specs expected by Argo and doing all the heavy-lifting under the scenes.
- Partitioning outputs and nodes to create dynamic parallelization and map-reduce patterns easily.
Moreover, the first version includes:
- >99% test coverage.
- A set of examples covering the most common patterns.
- A comprehensive API reference via docstrings.