dagdog
Lightweight DAGs for data analysis dev ops. By the time you finish a project with this lil puppy, you'll never want to use a Jupyter notebook again because
- you will have wasted less time waiting for your notebook to rerun, by iterating rapidly on modular components instead of rerunning your entire analysis after every code update.
- your code will already be closer to production-ready, as well as more understandable and reliable.
Note that this is NOT a replacement for tools like dagster or prefect. Those tools emphasize production and monitoring, while dagdog is strictly a dev-ops tool, allowing a user to rapidly sketch out an analysis pipeline without worrying about production considerations. This allows proofs-of-concept to grow faster (and fail faster).
Getting started
See the demo. In brief, here's how to work with dagdog:
- Structure your data analysis pipeline as a collection of python modules, with each module defining exactly one task.
- Within each module, implement the task using a method named
__run__, with no arguments. (You might choose to call__run__from underif __name__ == "main":, butdagdogdoes not care about that and will access__run__directly.) - Create a project entrypoint script, imitating
demo/project.pyto define the execution order of your tasks. - Call your project entrypoint, dropping you into an interactive python session, where you can finally call any of the various execution and introspection methods on the
dogDAG object.
If working directly on this repo, consider using the simplest-possible virtual environment.
Design goals
- Easiest-possible usage of a DAG to coordinate execution of a collection of tasks during data analysis dev ops.
- Flexible commands for execution of the DAG, including running a task in isolation, running only upstream tasks, or running only downstream tasks, etc.
- All configurations managed natively in python -- users don't need to mess with yaml or json files.
- Prioritize simplicity above feature-completeness.
Metadata
Release files for dagdog 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dagdog-0.1.7.tar.gz | 9.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dagdog-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.1 kB
Release files / dagdog-0.1.7.tar.gz
| Download URL | dagdog-0.1.7.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d186c95f72acad9b59d2c67241054b6f03d385287f8a24d673a75837aee55d85
|
|
BLAKE2b-256 checksum How to use checksums |
32e6cd50add0da6fefaa508fcb332b32e6553535933bc31ad4d09c38f8d7de2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dagdog-0.1.7-py3-none-any.whl
| Download URL | dagdog-0.1.7-py3-none-any.whl |
|---|---|
| Size | 9.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e59476f1fb4c7a1fa0bc9f0a997104e72bca723f72f70da10f6c38cd78743929
|
|
BLAKE2b-256 checksum How to use checksums |
a51930ee02d9b13702cd4aafdbf353c0bba9a6fef2b255f4a1671af900378ede
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|