From 53063364061eeee8a7151d598aad677e9b1313f3 Mon Sep 17 00:00:00 2001 From: Leah Tacke genannt Unterberg <leah.tgu@pads.rwth-aachen.de> Date: Mon, 14 Apr 2025 12:06:40 +0200 Subject: [PATCH] minor changes to improve superset asset identifier consistency --- .../superset/asset_bundles/asset_bundles.py | 9 ++++++--- .../transformation/superset/asset_bundles/identifier.py | 5 +++++ .../transformation/superset/factories/importable.py | 5 +++-- pyproject.toml | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py b/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py index b7a40f9..c4a610d 100644 --- a/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py +++ b/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py @@ -129,9 +129,12 @@ class SupersetMitMDatasetBundle(SupersetAssetBundle): datasource_bundle=self.datasource_bundle, visualization_bundle=visualization_bundle) - def to_import(self, meta_data_type: MetadataType = MetadataType.Asset) -> SupersetMitMDatasetImport: + def to_import(self, metadata_type: MetadataType = MetadataType.MitMDataset) -> SupersetMitMDatasetImport: base_assets = mk_assets_import(databases=[self.datasource_bundle.database], datasets=self.datasource_bundle.datasets, charts=self.visualization_bundle.charts, - dashboards=self.visualization_bundle.dashboards) - return mk_mitm_dataset_import(mitm_datasets=[self.mitm_dataset], base_assets=base_assets) + dashboards=self.visualization_bundle.dashboards, + metadata_type=metadata_type) + return mk_mitm_dataset_import(mitm_datasets=[self.mitm_dataset], + base_assets=base_assets, + metadata_type=metadata_type) diff --git a/mitm_tooling/transformation/superset/asset_bundles/identifier.py b/mitm_tooling/transformation/superset/asset_bundles/identifier.py index 8fa65b6..6fa4f68 100644 --- a/mitm_tooling/transformation/superset/asset_bundles/identifier.py +++ b/mitm_tooling/transformation/superset/asset_bundles/identifier.py @@ -5,6 +5,7 @@ import pydantic from mitm_tooling.transformation.superset.definitions import DatasetIdentifierMap, \ DatabaseIdentifier, MitMDatasetIdentifier, BaseSupersetDefinition, DashboardIdentifier, SupersetMitMDatasetDef +from mitm_tooling.utilities.python_utils import deep_merge_dicts VizDashboardIdentifierMap = dict[str, DashboardIdentifier] VizCollectionIdentifierMap = dict[str, VizDashboardIdentifierMap] @@ -42,3 +43,7 @@ class MitMDatasetIdentifierBundle(DatasourceIdentifierBundle): viz_id_map={ 'default': {dash.dashboard_title: dash for dash in (mitm_dataset.dashboards or [])}}) + + def with_visualizations(self, *viz_id_maps: VizCollectionIdentifierMap) -> Self: + merged_viz_id_map = deep_merge_dicts(self.viz_id_map, *viz_id_maps) + return self.model_copy(update=dict(viz_id_map=merged_viz_id_map), deep=True) \ No newline at end of file diff --git a/mitm_tooling/transformation/superset/factories/importable.py b/mitm_tooling/transformation/superset/factories/importable.py index eb56c4c..08e91c9 100644 --- a/mitm_tooling/transformation/superset/factories/importable.py +++ b/mitm_tooling/transformation/superset/factories/importable.py @@ -16,6 +16,7 @@ def mk_assets_import(databases: list[SupersetDatabaseDef] = None, def mk_mitm_dataset_import(mitm_datasets: list[SupersetMitMDatasetDef], - base_assets: SupersetAssetsImport) -> SupersetMitMDatasetImport: + base_assets: SupersetAssetsImport, + metadata_type: MetadataType = MetadataType.MitMDataset) -> SupersetMitMDatasetImport: return SupersetMitMDatasetImport(mitm_datasets=mitm_datasets, base_assets=base_assets, - metadata=mk_metadata(MetadataType.MitMDataset)) + metadata=mk_metadata(metadata_type)) diff --git a/pyproject.toml b/pyproject.toml index ff734aa..55110b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mitm-tooling" -version = "0.5.1" +version = "0.5.2" description = "" authors = [{ name = "Leah Tacke genannt Unterberg", email = "l.tgu@pads.rwth-aachen.de" }] requires-python = ">=3.11,<3.14" -- GitLab