Nikolay Tsvetanov
05/28/2024, 11:31 AMNate
05/28/2024, 3:10 PMpull
stepsDev Dabke
05/28/2024, 3:11 PMfrom prefect import flow
from functools import wraps
class Workflow:
def __init__():
...
def flow(self):
def decorator(func):
...
prefect_wrapper = flow(name=..., ...)
@wraps(func)
def wrapper(*args, **kwargs):
# Centralized code here
return func(*args, **kwargs)
return prefect_wrapper(wrapper)
return decorator
Nikolay Tsvetanov
05/28/2024, 3:15 PMNikolay Tsvetanov
05/28/2024, 3:16 PMDev Dabke
05/28/2024, 3:17 PMasync
, then you have to be a bit more careful with this. We have a version of this code that work async
, but it does a bit more work.
Also, I forgot to specify usage:
from workflow_file import Workflow
workflow = Workflow()
@worfklow.flow
def flow(...):
...
Nikolay Tsvetanov
05/28/2024, 3:18 PMDev Dabke
05/28/2024, 3:24 PMwrapper
should also be async
Dev Dabke
05/28/2024, 3:24 PM