diff --git a/package/kedro_viz/data_access/repositories/modular_pipelines.py b/package/kedro_viz/data_access/repositories/modular_pipelines.py index b887d020b8..b32b62ecb8 100644 --- a/package/kedro_viz/data_access/repositories/modular_pipelines.py +++ b/package/kedro_viz/data_access/repositories/modular_pipelines.py @@ -1,5 +1,6 @@ """`kedro_viz.data_access.repositories.modular_pipelines` defines repository to centralise access to modular pipelines data.""" + from typing import Dict, Optional, Union from kedro_viz.constants import ROOT_MODULAR_PIPELINE_ID @@ -215,6 +216,8 @@ def extract_from_node(self, node: GraphNode) -> Optional[str]: # so does the modular pipeline. modular_pipeline.pipelines.update(node.pipelines) + modular_pipeline.tags.update(node.tags) + # Since we extract the modular pipeline from the node's namespace, # the node is by definition a child of the modular pipeline. self.add_child( diff --git a/package/kedro_viz/services/modular_pipelines.py b/package/kedro_viz/services/modular_pipelines.py index e15f381000..bc568e99ff 100644 --- a/package/kedro_viz/services/modular_pipelines.py +++ b/package/kedro_viz/services/modular_pipelines.py @@ -1,6 +1,7 @@ """`kedro_viz.services.modular_pipelines` defines modular pipelines-related business logic. The service layer consist of pure functions operating on domain models. """ + from typing import Dict from kedro_viz.constants import ROOT_MODULAR_PIPELINE_ID @@ -78,6 +79,7 @@ def expand_tree( ) expanded_tree[parent_id].pipelines.update(modular_pipeline_node.pipelines) + expanded_tree[parent_id].tags.update(modular_pipeline_node.tags) expanded_tree[parent_id].children.add( ModularPipelineChild( id=f"{parent_id}.{chunks[i]}", diff --git a/package/tests/test_api/test_rest/test_responses.py b/package/tests/test_api/test_rest/test_responses.py index 5e5d32a4c2..1842ee51f1 100644 --- a/package/tests/test_api/test_rest/test_responses.py +++ b/package/tests/test_api/test_rest/test_responses.py @@ -184,7 +184,7 @@ def assert_example_data(response_data): { "id": "uk.data_processing", "name": "uk.data_processing", - "tags": [], + "tags": ["split"], "pipelines": ["__default__"], "type": "modularPipeline", "modular_pipelines": None, @@ -195,7 +195,7 @@ def assert_example_data(response_data): { "id": "uk.data_science", "name": "uk.data_science", - "tags": [], + "tags": ["train"], "pipelines": ["__default__"], "type": "modularPipeline", "modular_pipelines": None, @@ -206,7 +206,7 @@ def assert_example_data(response_data): { "id": "uk", "name": "uk", - "tags": [], + "tags": ["split", "train"], "pipelines": ["__default__"], "type": "modularPipeline", "modular_pipelines": None, @@ -731,7 +731,7 @@ def test_get_pipeline(self, client): { "id": "uk", "name": "uk", - "tags": [], + "tags": ["train"], "pipelines": ["data_science"], "type": "modularPipeline", "modular_pipelines": None, @@ -742,7 +742,7 @@ def test_get_pipeline(self, client): { "id": "uk.data_science", "name": "uk.data_science", - "tags": [], + "tags": ["train"], "pipelines": ["data_science"], "type": "modularPipeline", "modular_pipelines": None,