Skip to content

Commit

Permalink
use create_from_ids for Dashboard and Charts
Browse files Browse the repository at this point in the history
  • Loading branch information
sgomezvillamor committed Mar 4, 2025
1 parent 18209d3 commit dab0d75
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 8 deletions.
30 changes: 30 additions & 0 deletions metadata-ingestion/scripts/avro_codegen.py
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,36 @@ def get_notebook_id(self) -> str:
"""
],
"tag": [_create_from_id.format(class_name="TagUrn")],
"chart": [
"""
@classmethod
def create_from_ids(
cls,
platform: str,
name: str,
platform_instance: Optional[str] = None,
) -> "ChartUrn":
return ChartUrn(
dashboard_tool=platform,
chart_id=f"{platform_instance}.{name}" if platform_instance else name,
)
"""
],
"dashboard": [
"""
@classmethod
def create_from_ids(
cls,
platform: str,
name: str,
platform_instance: Optional[str] = None,
) -> "DashboardUrn":
return DashboardUrn(
dashboard_tool=platform,
dashboard_id=f"{platform_instance}.{name}" if platform_instance else name,
)
"""
],
}


Expand Down
20 changes: 12 additions & 8 deletions metadata-ingestion/src/datahub/emitter/mce_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@
_Aspect as AspectAbstract,
)
from datahub.metadata.urns import (
ChartUrn,
DashboardUrn,
DataFlowUrn,
DataJobUrn,
DataPlatformUrn,
Expand Down Expand Up @@ -335,10 +337,11 @@ def make_dashboard_urn(
platform: str, name: str, platform_instance: Optional[str] = None
) -> str:
# FIXME: dashboards don't currently include data platform urn prefixes.
if platform_instance:
return f"urn:li:dashboard:({UrnEncoder.encode_string(platform)},{UrnEncoder.encode_string(platform_instance)}.{UrnEncoder.encode_string(name)})"
else:
return f"urn:li:dashboard:({UrnEncoder.encode_string(platform)},{UrnEncoder.encode_string(name)})"
return DashboardUrn.create_from_ids(
platform=platform,
name=name,
platform_instance=platform_instance,
).urn()


def dashboard_urn_to_key(dashboard_urn: str) -> Optional[DashboardKeyClass]:
Expand All @@ -353,10 +356,11 @@ def make_chart_urn(
platform: str, name: str, platform_instance: Optional[str] = None
) -> str:
# FIXME: charts don't currently include data platform urn prefixes.
if platform_instance:
return f"urn:li:chart:({UrnEncoder.encode_string(platform)},{UrnEncoder.encode_string(platform_instance)}.{UrnEncoder.encode_string(name)})"
else:
return f"urn:li:chart:({UrnEncoder.encode_string(platform)},{UrnEncoder.encode_string(name)})"
return ChartUrn.create_from_ids(
platform=platform,
name=name,
platform_instance=platform_instance,
).urn()


def chart_urn_to_key(chart_urn: str) -> Optional[ChartKeyClass]:
Expand Down

0 comments on commit dab0d75

Please sign in to comment.