Hi Flyte team, we're using `with_overrides(name)` ...
# ask-the-community
s
Hi Flyte team, we're using
with_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 🧵.
Copy code
@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"])
cc @Archit Rathore
d
@Sherwyn Dsouza I just reproduced this behavior with a simple example. Would you mind filing a new Issue?
s
Thanks @David Espejo (he/him), filed this issue here.
a
Ran into this again, and had some more observations. • It seems that the renaming works in the
Nodes
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:
Copy code
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