Ben Fogelson
07/14/2020, 7:09 PMimport prefect as p
@p.task
def add_one(n):
return n + 1
@p.task
def add_two(n):
return n + 2
with p.Flow('f') as f:
a = p.Parameter('a')
b = add_one(a)
b.slug = 'my_slug'
c = add_two(a)
c.slug = 'my_slug'
f.get_tasks(slug='my_slug') # returns both tasks
f.validate(). # passes
Jim Crist-Harif
07/14/2020, 7:15 PMimport prefect as p
@p.task
def add_one(n):
return n + 1
@p.task
def add_two(n):
return n + 2
with p.Flow('f') as f:
a = p.Parameter('a')
b = add_one(a, task_args={"slug": "my_slug"})
c = add_two(a, task_args={"slug": "my_slug"})
slug
for a task ever, since the slug is autogenerated for you. We've been thinking about deprecating and removing the slug
kwarg/attribute on tasks completely, since they're never used once a task is added to a flow. I just opened an issue for this here: https://github.com/PrefectHQ/prefect/issues/2964Ben Fogelson
07/14/2020, 7:36 PMitay livni
07/14/2020, 7:36 PMtargets
and merge_parameters
@Chris White gave me these thoughts on slugs 2531
I wouldn't expect users to really interact with `slug`s honestly - the main purpose of a slug is to have a stable ID that allows the Prefect API to determine which Python object is undergoing state updates. Slugs are not an inherent property of tasks, they're a property of tasks within flows, hence the move away from storing them on task objects directly.
Jeremiah
07/14/2020, 8:30 PMslug
behavior we discussed (but didn’t implement) adjusting the flow’s validate()
method to check slugs. - https://github.com/PrefectHQ/prefect/pull/2531#issuecomment-626094592 Perhaps we should revisit just as a matter of hygiene; validate()
is a useful method for ensuring graph integrity