diff --git a/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py b/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py index b7a40f9eacbabd60c68099a66e8e3051446d8dfa..c4a610dedc440c507badbe0a18d8ecb23a0e1fc6 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 8fa65b61e606c8823e3a288061fa2a8a373fe9d2..6fa4f68c33097fea8b1857e7d4fab03f1afe639e 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 eb56c4c979276f3b230f4bfca0160ccde5b37d3a..08e91c94eab78059e9d626ea1e7431bedbfb7151 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 ff734aa2a58b0b94bf5c0c8bb0889ad1a5428f4e..55110b4a3d58231c9d607ded0e936edb73281e53 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"