Skip to content

Commit

Permalink
merged cli version to avoid test failures
Browse files Browse the repository at this point in the history
Signed-off-by: ravi-kumar-pilla <[email protected]>
  • Loading branch information
ravi-kumar-pilla committed May 17, 2024
2 parents f3b8007 + 8372ec3 commit c854392
Show file tree
Hide file tree
Showing 18 changed files with 194 additions and 151 deletions.
5 changes: 5 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,17 @@ Please follow the established format:

## Major features and improvements

- Enable/disable preview for all the datasets when publishing Kedro-Viz via CLI. (#1894)

Check warning on line 12 in RELEASE.md

View workflow job for this annotation

GitHub Actions / vale

[vale] RELEASE.md#L12

[Kedro-viz.words] Use 'with' or 'through' instead of 'via'.
Raw output
{"message": "[Kedro-viz.words] Use 'with' or 'through' instead of 'via'.", "location": {"path": "RELEASE.md", "range": {"start": {"line": 12, "column": 73}}}, "severity": "WARNING"}

## Bug fixes and other changes

- Upgrade the gitpod workspace-full to a newer version which includes both Node 18 and Python 3.11.5. (#1862)
- Refactor backend integration with Kedro by replacing bootstrap_project with configure_project. (#1796)
- Enhance kedro-viz doc integration. (#1874)
- Fix Kedro-Viz waiting for valid Kedro project. (#1871)
- Enhance Kedro-Viz documentation by using Kedro-sphinx-theme. (#1898)
- Fix for schema change in strawberry-graphql JSON scalar. (#1903)
- Fix messaging level when package compatibility is not satisfied. (#1904)

# Release 9.0.0

Expand Down
2 changes: 1 addition & 1 deletion demo-project/src/demo_project/requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ wheel>=0.35, <0.37
pillow~=9.0
matplotlib==3.5.0
pre-commit~=1.17
seaborn~=0.11.2
seaborn>=0.13.0
2 changes: 1 addition & 1 deletion demo-project/src/docker_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ kedro>=0.18.0
kedro-datasets[pandas.CSVDataset,pandas.ExcelDataset, pandas.ParquetDataset, plotly.PlotlyDataset, matplotlib.MatplotlibWriter]>=2.1.0
scikit-learn~=1.0
pillow~=9.0
seaborn~=0.11.2
seaborn>=0.13.0
76 changes: 0 additions & 76 deletions docs/source/_templates/layout.html

This file was deleted.

2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = "sphinx_rtd_theme"
html_theme = "kedro-sphinx-theme"

# Theme options are theme-specific and customise the look and feel of a theme
# further. For a list of options available for each theme, see the
Expand Down
20 changes: 11 additions & 9 deletions package/kedro_viz/api/rest/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,16 +372,17 @@ def get_selected_pipeline_response(registered_pipeline_id: str):


def get_package_compatibilities_response(
package_requirements: Dict[str, str],
package_requirements: Dict[str, Dict[str, str]],
) -> List[PackageCompatibilityAPIResponse]:
"""API response for `/api/package_compatibility`."""
package_requirements_response = []

for package_name, compatible_version in package_requirements.items():
for package_name, package_info in package_requirements.items():
compatible_version = package_info["min_compatible_version"]
try:
package_version = get_package_version(package_name)
except PackageNotFoundError as exc:
logger.exception("Failed to get package version. Error: %s", str(exc))
except PackageNotFoundError:
logger.warning(package_info["warning_message"])
package_version = "0.0.0"

is_compatible = packaging.version.parse(
Expand Down Expand Up @@ -420,11 +421,12 @@ 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, is_preview_enabled: bool
nodes_path: str, remote_fs: Any, is_datasets_previewed: bool
):
"""Saves API /nodes/{node} response to a directory."""
# Set if preview is enabled/disabled for all data nodes
DataNodeMetadata.set_is_datasets_previewed(is_datasets_previewed)

DataNodeMetadata.set_preview_enabled(is_preview_enabled)
for nodeId in data_access_manager.nodes.get_node_ids():
try:
write_api_response_to_fs(
Expand Down Expand Up @@ -455,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, is_preview_enabled: bool):
def save_api_responses_to_fs(path: str, remote_fs: Any, is_datasets_previewed: bool):
"""Saves all Kedro Viz API responses to a directory."""
try:
logger.debug(
Expand All @@ -473,11 +475,11 @@ def save_api_responses_to_fs(path: str, remote_fs: Any, is_preview_enabled: bool
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, is_preview_enabled)
save_api_node_response_to_fs(nodes_path, remote_fs, is_datasets_previewed)
save_api_pipeline_response_to_fs(pipelines_path, remote_fs)

except Exception as exc: # pragma: no cover
logger.exception(
"An error occurred while preparing data for saving. Error: %s", str(exc)
)
raise exc
raise exc
12 changes: 11 additions & 1 deletion package/kedro_viz/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,14 @@

SHAREABLEVIZ_SUPPORTED_PLATFORMS = ["aws", "azure", "gcp"]

PACKAGE_REQUIREMENTS = {"fsspec": "2023.9.0", "kedro-datasets": "2.1.0"}
PACKAGE_REQUIREMENTS = {
"fsspec": {
"min_compatible_version": "2023.9.0",
"warning_message": "Publish and share Kedro-Viz requires fsspec >= 2023.9.0",
},
"kedro-datasets": {
"min_compatible_version": "2.1.0",
"warning_message": "Experiment Tracking is exclusively supported "
"for users with kedro-datasets >= 2.1.0",
},
}
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, is_preview_enabled: bool):
def _upload_api_responses(self, is_datasets_previewed: bool):
"""Write API responses to the build."""
save_api_responses_to_fs(self._path, self._fs, is_preview_enabled)
save_api_responses_to_fs(self._path, self._fs, is_datasets_previewed)

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, is_preview_enabled: bool = False):
def deploy(self, is_datasets_previewed: bool = False):
"""Create and deploy all static files to local/remote file system"""

self._upload_api_responses(is_preview_enabled)
self._upload_api_responses(is_datasets_previewed)
self._upload_static_files(_HTML_DIR)
self._upload_deploy_viz_metadata_file()
34 changes: 28 additions & 6 deletions package/kedro_viz/launchers/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,12 @@ def run(
is_flag=True,
help="A flag to include all registered hooks in your Kedro Project",
)
def deploy(platform, endpoint, bucket_name, include_hooks):
@click.option(
"--preview",
default=False,
help="Enable/disable preview for all the datasets.",
)
def deploy(platform, endpoint, bucket_name, include_hooks, preview):
"""Deploy and host Kedro Viz on provided platform"""
if not platform or platform.lower() not in SHAREABLEVIZ_SUPPORTED_PLATFORMS:
display_cli_message(
Expand All @@ -252,7 +257,13 @@ def deploy(platform, endpoint, bucket_name, include_hooks):
)
return

create_shareableviz_process(platform, endpoint, bucket_name, include_hooks)
create_shareableviz_process(
platform,
preview,
endpoint,
bucket_name,
include_hooks,
)


@viz.command(context_settings={"help_option_names": ["-h", "--help"]})
Expand All @@ -261,14 +272,23 @@ def deploy(platform, endpoint, bucket_name, include_hooks):
is_flag=True,
help="A flag to include all registered hooks in your Kedro Project",
)
def build(include_hooks):
@click.option(
"--preview",
default=False,
help="Enable/disable preview for all the datasets.",
)
def build(include_hooks, preview):
"""Create build directory of local Kedro Viz instance with Kedro project data"""

create_shareableviz_process("local", include_hooks=include_hooks)
create_shareableviz_process("local", preview, include_hooks=include_hooks)


def create_shareableviz_process(
platform, endpoint=None, bucket_name=None, include_hooks=False
platform,
is_datasets_previewed,
endpoint=None,
bucket_name=None,
include_hooks=False,
):
"""Creates platform specific deployer process"""
try:
Expand All @@ -279,6 +299,7 @@ def create_shareableviz_process(
target=load_and_deploy_viz,
args=(
platform,
is_datasets_previewed,
endpoint,
bucket_name,
include_hooks,
Expand Down Expand Up @@ -354,6 +375,7 @@ def create_shareableviz_process(

def load_and_deploy_viz(
platform,
is_datasets_previewed,
endpoint,
bucket_name,
include_hooks,
Expand All @@ -369,7 +391,7 @@ def load_and_deploy_viz(

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

except (
# pylint: disable=catching-non-exception
Expand Down
15 changes: 8 additions & 7 deletions package/kedro_viz/models/flowchart.py
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,7 @@ class DataNodeMetadata(GraphNodeMetadata):

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

_is_preview_enabled: ClassVar[bool] = False
is_datasets_previewed: 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 +779,8 @@ def check_data_node_exists(cls, values):
return values

@classmethod
def set_preview_enabled(cls, value: bool):
cls._is_preview_enabled = value
def set_is_datasets_previewed(cls, value: bool):
cls.is_datasets_previewed = value

@classmethod
def set_data_node_and_dataset(cls, data_node):
Expand Down Expand Up @@ -812,10 +812,11 @@ def set_run_command(cls, _):
@field_validator("preview")
@classmethod
def set_preview(cls, _):
if not cls._is_preview_enabled:
return None

if cls.data_node.is_preview_disabled() or not hasattr(cls.dataset, "preview"):
if (
cls.data_node.is_preview_disabled()
or not hasattr(cls.dataset, "preview")
or not cls.is_datasets_previewed
):
return None

try:
Expand Down
5 changes: 3 additions & 2 deletions package/kedro_viz/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,10 @@ def run_server(
pipeline_name,
extra_params,
)

# [TODO: As we can do this with `kedro viz build`,
# we need to shift this feature outside of kedro viz run]
if save_file:
save_api_responses_to_fs(save_file, fsspec.filesystem("file"))
save_api_responses_to_fs(save_file, fsspec.filesystem("file"), True)

app = apps.create_api_app_from_project(path, autoreload)
else:
Expand Down
6 changes: 1 addition & 5 deletions package/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,7 @@
},
extras_require={
"docs": [
"sphinx>=5.3,<7.3",
"sphinx_copybutton==0.5.2",
"sphinx-notfound-page",
"sphinx_rtd_theme==1.3.0",
"myst-parser>=1.0,<2.1",
"kedro-sphinx-theme==2024.4.0",
],
"aws": ["s3fs>=2021.4"],
"azure": ["adlfs>=2021.4"],
Expand Down
Loading

0 comments on commit c854392

Please sign in to comment.