From ad35cf746c9c78c69e34f502b3c4023124dc4ca9 Mon Sep 17 00:00:00 2001 From: sasha Date: Mon, 18 Nov 2024 13:31:33 +0100 Subject: [PATCH] [OPIK-192]: [SDK] add a link to create dataset (#641) * [OPIK-192]: add a dataset redirect link to creation; * [OPIK-192]: run linter; * [OPIK-192]: add link to a created dataset; --------- Co-authored-by: Sasha --- sdks/python/src/opik/api_objects/opik_client.py | 9 +++++++++ sdks/python/src/opik/url_helpers.py | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/sdks/python/src/opik/api_objects/opik_client.py b/sdks/python/src/opik/api_objects/opik_client.py index 53b4eda3b9..7f8d16ed2e 100644 --- a/sdks/python/src/opik/api_objects/opik_client.py +++ b/sdks/python/src/opik/api_objects/opik_client.py @@ -98,6 +98,13 @@ def _display_trace_url(self, workspace: str, project_name: str) -> None: ) self._project_name_most_recent_trace = project_name + def _display_created_dataset_url(self, workspace: str, dataset_name: str) -> None: + dataset_url = url_helpers.get_dataset_url( + workspace=workspace, dataset_name=dataset_name + ) + + LOGGER.info(f'Created a "{dataset_name}" dataset at {dataset_url}.') + def trace( self, id: Optional[str] = None, @@ -406,6 +413,8 @@ def create_dataset( rest_client=self._rest_client, ) + self._display_created_dataset_url(workspace=self._workspace, dataset_name=name) + return result def get_or_create_dataset( diff --git a/sdks/python/src/opik/url_helpers.py b/sdks/python/src/opik/url_helpers.py index 78fb76b262..b446f80ade 100644 --- a/sdks/python/src/opik/url_helpers.py +++ b/sdks/python/src/opik/url_helpers.py @@ -54,6 +54,17 @@ def get_project_url(workspace: str, project_name: str) -> str: return urllib.parse.urljoin(ui_url, project_path) +def get_dataset_url(workspace: str, dataset_name: str) -> str: + ui_url = get_ui_url() + + dataset_path = urllib.parse.quote( + f"{workspace}/redirect/datasets?name={dataset_name}", + safe=ALLOWED_URL_CHARACTERS, + ) + + return urllib.parse.urljoin(ui_url, dataset_path) + + def get_base_url(url: str) -> str: parsed = urllib.parse.urlparse(url) base_url = f"{parsed.scheme}://{parsed.netloc}/"