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