Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix MemoryDataSet not displaying on metadata panel #1113

Merged
merged 12 commits into from
Oct 3, 2022
2 changes: 1 addition & 1 deletion package/kedro_viz/api/rest/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ class Config:


class DataNodeMetadataAPIResponse(BaseAPIResponse):
filepath: str
filepath: Optional[str]
type: str
plot: Optional[Dict]
image: Optional[str]
Expand Down
6 changes: 3 additions & 3 deletions package/kedro_viz/data_access/repositories/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# pylint: disable=missing-class-docstring,missing-function-docstring,protected-access
from typing import Dict, Optional

from kedro.io import AbstractDataSet, DataCatalog, DataSetNotFoundError
from kedro.io import AbstractDataSet, DataCatalog, DataSetNotFoundError, MemoryDataSet

from kedro_viz.constants import KEDRO_VERSION

Expand Down Expand Up @@ -55,8 +55,8 @@ def get_dataset(self, dataset_name: str) -> Optional[AbstractDataSet]:
dataset_obj = self._catalog._get_dataset(dataset_name, suggest=False)
else: # pragma: no cover
dataset_obj = self._catalog._get_dataset(dataset_name)
except DataSetNotFoundError: # pragma: no cover
dataset_obj = None
except DataSetNotFoundError:
dataset_obj = MemoryDataSet()

return dataset_obj

Expand Down
4 changes: 2 additions & 2 deletions package/tests/test_api/test_rest/test_reponses.py
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ def assert_example_transcoded_data(response_data):
"type": "data",
"modular_pipelines": [],
"layer": None,
"dataset_type": None,
"dataset_type": "kedro.io.memory_dataset.MemoryDataSet",
},
{
"id": "f0ebef01",
Expand Down Expand Up @@ -355,7 +355,7 @@ def assert_example_transcoded_data(response_data):
"type": "data",
"modular_pipelines": [],
"layer": None,
"dataset_type": None,
"dataset_type": "kedro.io.memory_dataset.MemoryDataSet",
},
]

Expand Down
17 changes: 15 additions & 2 deletions package/tests/test_data_access/test_managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import networkx as nx
import pytest
from kedro.extras.datasets.pandas import CSVDataSet
from kedro.io import DataCatalog
from kedro.io import DataCatalog, MemoryDataSet
from kedro.pipeline import Pipeline, node
from kedro.pipeline.modular_pipeline import pipeline

Expand Down Expand Up @@ -209,7 +209,7 @@ def test_add_dataset(self, data_access_manager: DataAccessManager):
data_access_manager.add_catalog(catalog)
data_access_manager.add_dataset("my_pipeline", dataset_name)

# dataset should be added as a gragph node
# dataset should be added as a graph node
nodes_list = data_access_manager.nodes.as_list()
assert len(nodes_list) == 1
graph_node = nodes_list[0]
Expand All @@ -219,6 +219,19 @@ def test_add_dataset(self, data_access_manager: DataAccessManager):
assert graph_node.belongs_to_pipeline("my_pipeline")
assert not graph_node.modular_pipelines

def test_add_memory_dataset_when_dataset_not_in_catalog(
self, data_access_manager: DataAccessManager
):
catalog = DataCatalog()
data_access_manager.add_catalog(catalog)
data_access_manager.add_dataset("my_pipeline", "memory_dataset")
# dataset should be added as a graph node
nodes_list = data_access_manager.nodes.as_list()
assert len(nodes_list) == 1
graph_node = nodes_list[0]
assert isinstance(graph_node, DataNode)
assert isinstance(graph_node.kedro_obj, MemoryDataSet)

def test_add_dataset_with_modular_pipeline(
self, data_access_manager: DataAccessManager
):
Expand Down