Skip to content

Commit

Permalink
are_datasets_previewable renamed to is_all_previews_enabled
Browse files Browse the repository at this point in the history
Signed-off-by: Jitendra Gundaniya <[email protected]>
  • Loading branch information
jitu5 committed May 21, 2024
1 parent 0998f7a commit d06f36e
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 34 deletions.
8 changes: 4 additions & 4 deletions package/kedro_viz/api/rest/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -421,11 +421,11 @@ def save_api_main_response_to_fs(main_path: str, remote_fs: Any):


def save_api_node_response_to_fs(
nodes_path: str, remote_fs: Any, are_datasets_previewable: bool
nodes_path: str, remote_fs: Any, is_all_previews_enabled: bool
):
"""Saves API /nodes/{node} response to a directory."""
# Set if preview is enabled/disabled for all data nodes
DataNodeMetadata.set_are_datasets_previewable(are_datasets_previewable)
DataNodeMetadata.set_is_all_previews_enabled(is_all_previews_enabled)

for nodeId in data_access_manager.nodes.get_node_ids():
try:
Expand Down Expand Up @@ -457,7 +457,7 @@ def save_api_pipeline_response_to_fs(pipelines_path: str, remote_fs: Any):
raise exc


def save_api_responses_to_fs(path: str, remote_fs: Any, are_datasets_previewable: bool):
def save_api_responses_to_fs(path: str, remote_fs: Any, is_all_previews_enabled: bool):
"""Saves all Kedro Viz API responses to a directory."""
try:
logger.debug(
Expand All @@ -475,7 +475,7 @@ def save_api_responses_to_fs(path: str, remote_fs: Any, are_datasets_previewable
remote_fs.makedirs(pipelines_path, exist_ok=True)

save_api_main_response_to_fs(main_path, remote_fs)
save_api_node_response_to_fs(nodes_path, remote_fs, are_datasets_previewable)
save_api_node_response_to_fs(nodes_path, remote_fs, is_all_previews_enabled)
save_api_pipeline_response_to_fs(pipelines_path, remote_fs)

except Exception as exc: # pragma: no cover
Expand Down
8 changes: 4 additions & 4 deletions package/kedro_viz/integrations/deployment/base_deployer.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ def __init__(self):
self._path = None
self._fs = None

def _upload_api_responses(self, are_datasets_previewable: bool):
def _upload_api_responses(self, is_all_previews_enabled: bool):
"""Write API responses to the build."""
save_api_responses_to_fs(self._path, self._fs, are_datasets_previewable)
save_api_responses_to_fs(self._path, self._fs, is_all_previews_enabled)

def _ingest_heap_analytics(self):
"""Ingest heap analytics to index file in the build."""
Expand Down Expand Up @@ -98,9 +98,9 @@ def _upload_deploy_viz_metadata_file(self):
logger.exception("Upload failed: %s ", exc)
raise exc

def deploy(self, are_datasets_previewable: bool = False):
def deploy(self, is_all_previews_enabled: bool = False):
"""Create and deploy all static files to local/remote file system"""

self._upload_api_responses(are_datasets_previewable)
self._upload_api_responses(is_all_previews_enabled)
self._upload_static_files(_HTML_DIR)
self._upload_deploy_viz_metadata_file()
8 changes: 4 additions & 4 deletions package/kedro_viz/launchers/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ def build(include_hooks, include_preview):

def create_shareableviz_process(
platform,
are_datasets_previewable,
is_all_previews_enabled,
endpoint=None,
bucket_name=None,
include_hooks=False,
Expand All @@ -299,7 +299,7 @@ def create_shareableviz_process(
target=load_and_deploy_viz,
args=(
platform,
are_datasets_previewable,
is_all_previews_enabled,
endpoint,
bucket_name,
include_hooks,
Expand Down Expand Up @@ -375,7 +375,7 @@ def create_shareableviz_process(

def load_and_deploy_viz(
platform,
are_datasets_previewable,
is_all_previews_enabled,
endpoint,
bucket_name,
include_hooks,
Expand All @@ -391,7 +391,7 @@ def load_and_deploy_viz(

# Start the deployment
deployer = DeployerFactory.create_deployer(platform, endpoint, bucket_name)
deployer.deploy(are_datasets_previewable)
deployer.deploy(is_all_previews_enabled)

except (
# pylint: disable=catching-non-exception
Expand Down
19 changes: 13 additions & 6 deletions package/kedro_viz/models/flowchart.py
Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,10 @@ def get_preview_args(self):
return self.viz_metadata.get("preview_args", None)

def is_preview_disabled(self):
"""Checks if the dataset has a preview disabled"""
"""Checks if the dataset has a preview disabled at the node level.
This happens when the user specifies 'preview=false' in the DataCatalog.
"""

return (
self.viz_metadata is not None and self.viz_metadata.get("preview") is False
)
Expand Down Expand Up @@ -729,13 +732,17 @@ class DataNodeMetadata(GraphNodeMetadata):
Args:
data_node (DataNode): Data node to which this metadata belongs to.
Attributes:
is_all_previews_enabled (bool): Class-level attribute to determine if previews are enabled for all nodes.
This can be configured via CLI or UI to manage the preview settings.
Raises:
AssertionError: If data_node is not supplied during instantiation
"""

data_node: DataNode = Field(..., exclude=True)

are_datasets_previewable: ClassVar[bool] = True
is_all_previews_enabled: ClassVar[bool] = True

type: Optional[str] = Field(
default=None, validate_default=True, description="The type of the data node"
Expand Down Expand Up @@ -779,8 +786,8 @@ def check_data_node_exists(cls, values):
return values

@classmethod
def set_are_datasets_previewable(cls, value: bool):
cls.are_datasets_previewable = value
def set_is_all_previews_enabled(cls, value: bool):
cls.is_all_previews_enabled = value

@classmethod
def set_data_node_and_dataset(cls, data_node):
Expand Down Expand Up @@ -815,7 +822,7 @@ def set_preview(cls, _):
if (
cls.data_node.is_preview_disabled()
or not hasattr(cls.dataset, "preview")
or not cls.are_datasets_previewable
or not cls.is_all_previews_enabled
):
return None

Expand All @@ -842,7 +849,7 @@ def set_preview_type(cls, _):
if (
cls.data_node.is_preview_disabled()
or not hasattr(cls.dataset, "preview")
or not cls.are_datasets_previewable
or not cls.is_all_previews_enabled
):
return None

Expand Down
4 changes: 2 additions & 2 deletions package/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -353,5 +353,5 @@ def pipeline_with_data_sets_mock():


@pytest.fixture(autouse=True)
def reset_are_datasets_previewable():
DataNodeMetadata.are_datasets_previewable = True
def reset_is_all_previews_enabled():
DataNodeMetadata.is_all_previews_enabled = True
8 changes: 4 additions & 4 deletions package/tests/test_api/test_rest/test_responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -1031,15 +1031,15 @@ def test_save_api_pipeline_response_to_fs(self, mocker):
mock_write_api_response_to_fs.assert_has_calls(expected_calls, any_order=True)

@pytest.mark.parametrize(
"file_path, protocol, are_datasets_previewable",
"file_path, protocol, is_all_previews_enabled",
[
("s3://shareableviz", "s3", True),
("abfs://shareableviz", "abfs", False),
("shareableviz", "file", True),
],
)
def test_save_api_responses_to_fs(
self, file_path, protocol, are_datasets_previewable, mocker
self, file_path, protocol, is_all_previews_enabled, mocker
):
mock_api_main_response_to_fs = mocker.patch(
"kedro_viz.api.rest.responses.save_api_main_response_to_fs"
Expand All @@ -1055,7 +1055,7 @@ def test_save_api_responses_to_fs(
mock_filesystem.return_value.protocol = protocol

save_api_responses_to_fs(
file_path, mock_filesystem.return_value, are_datasets_previewable
file_path, mock_filesystem.return_value, is_all_previews_enabled
)

mock_api_main_response_to_fs.assert_called_once_with(
Expand All @@ -1064,7 +1064,7 @@ def test_save_api_responses_to_fs(
mock_api_node_response_to_fs.assert_called_once_with(
f"{file_path}/api/nodes",
mock_filesystem.return_value,
are_datasets_previewable,
is_all_previews_enabled,
)
mock_api_pipeline_response_to_fs.assert_called_once_with(
f"{file_path}/api/pipelines", mock_filesystem.return_value
Expand Down
16 changes: 8 additions & 8 deletions package/tests/test_launchers/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ def test_successful_build_with_existing_static_files(


@pytest.mark.parametrize(
"platform, are_datasets_previewable, endpoint, bucket_name,"
"platform, is_all_previews_enabled, endpoint, bucket_name,"
"include_hooks, process_completed_value",
[
(
Expand Down Expand Up @@ -644,7 +644,7 @@ def test_successful_build_with_existing_static_files(
)
def test_create_shareableviz_process(
platform,
are_datasets_previewable,
is_all_previews_enabled,
endpoint,
bucket_name,
include_hooks,
Expand All @@ -658,15 +658,15 @@ def test_create_shareableviz_process(
):
mock_process_completed.return_value.value = process_completed_value
cli.create_shareableviz_process(
platform, are_datasets_previewable, endpoint, bucket_name, include_hooks
platform, is_all_previews_enabled, endpoint, bucket_name, include_hooks
)

# Assert the mocks were called as expected
mock_viz_deploy_process.assert_called_once_with(
target=mock_viz_load_and_deploy,
args=(
platform,
are_datasets_previewable,
is_all_previews_enabled,
endpoint,
bucket_name,
include_hooks,
Expand Down Expand Up @@ -706,7 +706,7 @@ def test_create_shareableviz_process(


@pytest.mark.parametrize(
"platform, are_datasets_previewable, endpoint, bucket_name, include_hooks, package_name",
"platform, is_all_previews_enabled, endpoint, bucket_name, include_hooks, package_name",
[
(
"azure",
Expand All @@ -730,7 +730,7 @@ def test_create_shareableviz_process(
)
def test_load_and_deploy_viz_success(
platform,
are_datasets_previewable,
is_all_previews_enabled,
endpoint,
bucket_name,
include_hooks,
Expand All @@ -746,7 +746,7 @@ def test_load_and_deploy_viz_success(

cli.load_and_deploy_viz(
platform,
are_datasets_previewable,
is_all_previews_enabled,
endpoint,
bucket_name,
include_hooks,
Expand All @@ -761,5 +761,5 @@ def test_load_and_deploy_viz_success(
mock_DeployerFactory.create_deployer.assert_called_once_with(
platform, endpoint, bucket_name
)
deployer_mock.deploy.assert_called_once_with(are_datasets_previewable)
deployer_mock.deploy.assert_called_once_with(is_all_previews_enabled)
mock_click_echo.echo.assert_not_called()
4 changes: 2 additions & 2 deletions package/tests/test_models/test_flowchart.py
Original file line number Diff line number Diff line change
Expand Up @@ -394,8 +394,8 @@ def test_is_preview_disabled(self):
)
assert data_node.is_preview_disabled() is True

def test_are_datasets_previewable(self, example_data_node):
DataNodeMetadata.set_are_datasets_previewable(False)
def test_is_all_previews_enabled(self, example_data_node):
DataNodeMetadata.set_is_all_previews_enabled(False)
preview_node_metadata = DataNodeMetadata(data_node=example_data_node)

assert preview_node_metadata.preview is None
Expand Down

0 comments on commit d06f36e

Please sign in to comment.