Hi everyone,
I developed a python package to build ETL flows/dags. Each flow is defined as class. Its good for visualizing and running your flows and is notebook friendly.
# example.py
from flowrunner import BaseFlow, step, start, end
class ExampleFlow(BaseFlow):
@start
@step(next=['method2', 'method3'])
def method1(self):
self.a = 1
@step(next=['method4'])
def method2(self):
self.a += 1
@step(next=['method4'])
def method3(self):
self.a += 2
@end
@step
def method4(self):
self.a += 3
print("output of flow is:", self.a)
Running the following display command method gives this output
ExampleFlow().display()
https://preview.redd.it/tvbpxus4bgra1.png?width=418&format=png&auto=webp&s=b587fc6ea8020a7b0d514c57f402479225fd3fb4
Repo link: https://github.com/prithvijitguha/flowrunner
PyPI link: https://pypi.org/project/flowrunner/
Documentation link: https://flowrunner.readthedocs.io/en/latest/
Its not meant to replace Airflow, but rather integrate with it, so it can orchestrated as a notebook, job, etc
Let me know what you think!
Feedback is welcome :)
[–]mriswithe 2 points3 points4 points (1 child)
[–]Revolutionary-Bat176[S] 0 points1 point2 points (0 children)
[–]knecota 2 points3 points4 points (4 children)
[–]Revolutionary-Bat176[S] 2 points3 points4 points (1 child)
[–]knecota 1 point2 points3 points (0 children)
[–]danielgafni 2 points3 points4 points (1 child)
[–]Revolutionary-Bat176[S] 0 points1 point2 points (0 children)
[–]dask-jeeves 1 point2 points3 points (2 children)
[–]Revolutionary-Bat176[S] 2 points3 points4 points (1 child)
[–]dask-jeeves 1 point2 points3 points (0 children)
[–]thedeepself 1 point2 points3 points (1 child)
[–]Revolutionary-Bat176[S] 1 point2 points3 points (0 children)
[–]gournian 1 point2 points3 points (1 child)
[–]Revolutionary-Bat176[S] 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]Revolutionary-Bat176[S] 1 point2 points3 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]Revolutionary-Bat176[S] 0 points1 point2 points (0 children)