echoing-kilobyte-84070
04/19/2024, 11:21 PMwith_overrides(name)
to change the name of a task and notice:
• The graph view shows the new task name
• But the node view doesn’t
We're on the latest flytekit (1.11.0
).
Has anyone experienced something similar, is this a known UI bug? Code in 🧵.echoing-kilobyte-84070
04/19/2024, 11:21 PM@typed_task
@log_info
def make_test_dc(name: str, path: str, subfield: str, subpath: str) -> OuterDC:
return OuterDC(name=name, path=path, inner_dc=InnerDC(subfield=subfield, subpath=subpath))
@typed_task
@log_info
def extract_subpath(dc: OuterDC, simple_list: List[str]) -> str:
import flytekit
print(f"flytekit version: {flytekit.__version__}")
return dc.inner_dc.subpath
@typed_workflow
@log_info
def wf(
name: str = "name",
path: str = "path",
subfield: str = "subfield",
subpath: str = "subpath",
) -> str:
dc = make_test_dc(name=name, path=path, subfield=subfield, subpath=subpath).with_overrides(
name="make_test_dc_renamed"
)
return extract_subpath(dc=dc, simple_list=["a", "b", "c"])
echoing-kilobyte-84070
04/19/2024, 11:21 PMaverage-finland-92144
04/22/2024, 7:35 PMechoing-kilobyte-84070
04/22/2024, 7:45 PMcrooked-lifeguard-46802
07/03/2024, 1:29 PMNodes
view only for @workflow
◦ Outer workflow can rename (sub)workflows
◦ Dynamic can rename (sub)workflows
• But workflows or dynamic cannot rename tasks or dynamics in the Nodes
view
• In all of the cases, the graph view is correctly updated ✅
Minimal reproducing code covering all cases:
from datetime import datetime
from flytekit import task, workflow, dynamic
from typing import List
DEFAULT_START_DATE = datetime(2024, 1, 1)
@task
def simple_task(name: str) -> str:
return f"Hello {name}"
@dynamic
def simple_dynamic(name: str) -> str:
return simple_task(name=name)
@dynamic
def dynamic_with_task_renaming(name: str) -> str:
return simple_task(name=name).with_overrides(
name="simple_task_renamed_from_dynamic"
)
@workflow
def sub_workflow(name: str) -> str:
return simple_task(name=name).with_overrides(
name="simple_task_renamed_from_sub_workflow"
)
@dynamic
def dynamic_with_sub_workflow_renaming(name: str) -> str:
return sub_workflow(name=name).with_overrides(
name="sub_workflow_renamed_from_dynamic"
)
@workflow
def hello_world_wf(
name: str = "world",
start_date: datetime = DEFAULT_START_DATE,
) -> List[str]:
# ❌ Workflow renames task
res1 = simple_task(name=name).with_overrides(
name="simple_task_renamed_from_main_workflow"
)
# ❌ Workflow renames dynamic
res2 = simple_dynamic(name=name).with_overrides(name="simple_dynamic_renamed")
# ❌ Dynamic renames task
res3 = dynamic_with_task_renaming(name=name)
# ✅ Dynamic renames sub workflow
res4 = dynamic_with_sub_workflow_renaming(name=name)
# ✅ Workflow renames sub workflow
res5 = sub_workflow(name=name).with_overrides(name="sub_workflow_renamed")
return [res1, res2, res3, res4, res5]
Execution: https://serverless.union.ai/org/architrathore/projects/default/domains/development/executions/f5bf474defebd4e99b10/nodes