Skip to content

Commit b9715a4

Browse files
committed
friendly names for short URIs
1 parent 2f6f646 commit b9715a4

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

src/sagemaker/lineage/visualizer.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,11 @@ def _get_friendly_name(self, name, arn, entity_type):
295295
uri_parsed = urlparse(uri)
296296
name = os.path.basename(uri_parsed.path)
297297

298-
# directory?
299-
ext = os.path.splitext(name)[1]
300-
if not ext or len(ext) > 3:
298+
# shorten the uri if the length is more than 40,
299+
# e.g s3://flintstone-end-to-end-tests-gamma-us-west-2-069083975568/results/
300+
# canary-auto-1608761252626/preprocessed-data/tuning_data/train.txt
301+
# become s3://.../preprocessed-data/tuning_data/train.txt
302+
if len(uri) > 48:
301303
name = uri[:5] + "..." + uri[len(uri) - 40 :]
302304

303305
# if not then use the full uri

tests/unit/sagemaker/lineage/test_visualizer.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,30 @@ def vizualizer(sagemaker_session):
3030
return visualizer.LineageTableVisualizer(sagemaker_session)
3131

3232

33+
def test_friendly_name_short_uri(vizualizer, sagemaker_session):
34+
uri = "s3://f-069083975568/train.txt"
35+
arn = "test_arn"
36+
sagemaker_session.sagemaker_client.describe_artifact.return_value = {
37+
"Source": {"SourceUri": uri, "SourceTypes": ""}
38+
}
39+
actual_name = vizualizer._get_friendly_name(name=None, arn=arn, entity_type="artifact")
40+
assert uri == actual_name
41+
42+
43+
def test_friendly_name_long_uri(vizualizer, sagemaker_session):
44+
uri = (
45+
"s3://flintstone-end-to-end-tests-gamma-us-west-2-069083975568/results/canary-auto-1608761252626/"
46+
"preprocessed-data/tuning_data/train.txt"
47+
)
48+
arn = "test_arn"
49+
sagemaker_session.sagemaker_client.describe_artifact.return_value = {
50+
"Source": {"SourceUri": uri, "SourceTypes": ""}
51+
}
52+
actual_name = vizualizer._get_friendly_name(name=None, arn=arn, entity_type="artifact")
53+
expected_name = "s3://.../preprocessed-data/tuning_data/train.txt"
54+
assert expected_name == actual_name
55+
56+
3357
def test_trial_component_name(sagemaker_session, vizualizer):
3458
name = "tc-name"
3559

0 commit comments

Comments
 (0)