Anish Chhaparwal
10/24/2020, 11:34 PMimport argparse
from prefect import Flow, Parameter, task
import prefect
from prefect.environments import LocalEnvironment
@task
def testing(args):
logger = prefect.context.get("logger")
<http://logger.info|logger.info>(f"agrs value for name is : {args.name}")
<http://logger.info|logger.info>(f"agrs value for worker is : {args.workers}")
with Flow("args_trial") as flow:
opts = Parameter("opts")
testing(args=(opts))
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="test pywinrm")
parser.add_argument("--workers", type=int, default=10)
parser.add_argument("--sleep_time", type=int, default=2)
parser.add_argument("--name", type=str, default="args_tester")
opts = parser.parse_args()
# flow.run(opts=opts)
flow.environment = LocalEnvironment(labels=["qure9", "pipelines"])
flow.register(project_name="Test")
I can seem to figure out how to pass the default args while registering.
Also, if i have to convert each of them into prefect parameters, i'd like to pass all parameters to a function using something like def func_1(args) instead of specifying 15-20 to each function. is that possible?Chris White
Parameter
constructor like opts = Pararameter("opts", default=some_default_value)
and for flows that require large amounts of parameters, you might consider combining them all into a single dictionaryAnish Chhaparwal
10/26/2020, 7:55 PM