David Michael Carter
06/02/2023, 1:02 PM# callable name generator for mapped task
def generate_task_run_name_foo(dataset: dict, **kwargs):
return 'Foo: ' + dataset['name']
# task that gets mapped in the flow
@task(... , task_run_name=generate_task_run_name_foo)
def foo(dataset: dict, ...):
...
Prefect 2 doesn’t seem to pass the args of foo into the name generator like v1 does.
Is there a different way of achieving this in v2?
Prefect 2 transcription leads to missing 1 required positional argument: 'dataset'
Deceivious
06/02/2023, 1:08 PMwith_options
method of Task?David Michael Carter
06/02/2023, 1:12 PMDeceivious
06/02/2023, 1:13 PMDavid Michael Carter
06/02/2023, 1:13 PMDeceivious
06/02/2023, 1:14 PMDavid Michael Carter
06/02/2023, 1:15 PMJake Kaplan
06/02/2023, 1:48 PMJake Kaplan
06/02/2023, 1:48 PMfrom prefect import flow, task
from prefect.runtime import flow_run, task_run
def generate_task_name():
flow_name = flow_run.flow_name
task_name = task_run.task_name
parameters = task_run.parameters
name = parameters["name"]
limit = parameters["limit"]
return f"{flow_name}-{task_name}-with-{name}-and-{limit}"
@task(name="my-example-task",
description="An example task for a tutorial.",
task_run_name=generate_task_name)
def my_task(name: str, limit: int = 100):
pass
@flow
def my_flow(name: str):
# creates a run with a name like "my-flow-my-example-task-with-marvin-and-100"
my_task(name="marvin")
David Michael Carter
06/02/2023, 1:57 PMdef generate_task_run_name_foo() -> str:
return 'Foo: ' + task_run.parameters['dataset']['name']
Trent Shapiro
06/02/2023, 2:53 PMAttributeError: 'function' object has no attribute 'format'
from the setup:
from prefect import task
from prefect.runtime import task_run
def generate_archive_task_name() -> str:
schema_name = task_run.parameters["schema_name"]
table_name = task_run.parameters["table_name"]
return f"archive__{schema_name}__{table_name}"
@task(task_run_name=generate_archive_task_name)
def archive_table(schema_name: str, table_name: str) -> None:
...
currently on prefect 2.10.5 - was this implemented more recently?Jake Kaplan
06/02/2023, 2:59 PMTrent Shapiro
06/02/2023, 3:08 PM