From 4964628e007e77052e6162d3fd69b6c980a1165a Mon Sep 17 00:00:00 2001 From: Leah Tacke genannt Unterberg <leah.tgu@pads.rwth-aachen.de> Date: Thu, 22 May 2025 17:20:32 +0200 Subject: [PATCH] hotfixes --- .../superset/asset_bundles/asset_bundles.py | 2 +- mitm_tooling/transformation/superset/from_sql.py | 9 ++++++--- mitm_tooling/transformation/superset/interface.py | 4 ++-- .../superset/visualizations/abstract/mitm.py | 10 ++++++---- .../transformation/superset/visualizations/registry.py | 10 +++++----- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py b/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py index fd769bb..9a81e54 100644 --- a/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py +++ b/mitm_tooling/transformation/superset/asset_bundles/asset_bundles.py @@ -132,7 +132,7 @@ class SupersetVisualizationBundle(SupersetAssetBundle): class SupersetMitMDatasetBundle(SupersetAssetBundle): mitm_dataset: SupersetMitMDatasetDef datasource_bundle: SupersetDatasourceBundle - visualization_bundle: SupersetVisualizationBundle = pydantic.Field(default_factory=SupersetVisualizationBundle) + visualization_bundle: SupersetVisualizationBundle @property def identifiers(self) -> MitMDatasetIdentifierBundle: diff --git a/mitm_tooling/transformation/superset/from_sql.py b/mitm_tooling/transformation/superset/from_sql.py index 252c9c3..490215d 100644 --- a/mitm_tooling/transformation/superset/from_sql.py +++ b/mitm_tooling/transformation/superset/from_sql.py @@ -4,7 +4,7 @@ from mitm_tooling.extraction.sql.data_models import DBMetaInfo from mitm_tooling.extraction.sql.data_models.db_meta import DBMetaInfoBase from mitm_tooling.extraction.sql.db import connect_and_reflect from .asset_bundles import SupersetDatasourceBundle, \ - SupersetMitMDatasetBundle, DatasourceIdentifierBundle, MitMDatasetIdentifierBundle + SupersetMitMDatasetBundle, DatasourceIdentifierBundle, MitMDatasetIdentifierBundle, SupersetVisualizationBundle from .common import DBConnectionInfo, MitMDatasetInfo from .common import _mk_sqlite_engine, SQLiteFileOrEngine from .factories.database import mk_database @@ -57,7 +57,9 @@ def db_meta_into_mitm_dataset_bundle(db_meta: DBMetaInfoBase, header=dataset_info.header, database_uuid=datasource_bundle.database_uuid, table_uuids=datasource_bundle.dataset_uuids) - return SupersetMitMDatasetBundle(mitm_dataset=mitm_dataset, datasource_bundle=datasource_bundle) + + viz_bundle = SupersetVisualizationBundle(named_charts=identifiers.ch_id_map, viz_collections=identifiers.viz_id_map) + return SupersetMitMDatasetBundle(mitm_dataset=mitm_dataset, datasource_bundle=datasource_bundle, visualization_bundle=viz_bundle) def db_into_superset_datasource_bundle(arg: SQLiteFileOrEngine, @@ -88,4 +90,5 @@ def db_into_mitm_dataset_bundle(arg: SQLiteFileOrEngine, header=dataset_info.header, database_uuid=datasource_bundle.database_uuid, table_uuids=datasource_bundle.dataset_uuids) - return SupersetMitMDatasetBundle(mitm_dataset=mitm_dataset, datasource_bundle=datasource_bundle) + viz_bundle = SupersetVisualizationBundle(named_charts=identifiers.ch_id_map, viz_collections=identifiers.viz_id_map) + return SupersetMitMDatasetBundle(mitm_dataset=mitm_dataset, datasource_bundle=datasource_bundle, visualization_bundle=viz_bundle) diff --git a/mitm_tooling/transformation/superset/interface.py b/mitm_tooling/transformation/superset/interface.py index abee4c3..48bdfd9 100644 --- a/mitm_tooling/transformation/superset/interface.py +++ b/mitm_tooling/transformation/superset/interface.py @@ -16,12 +16,12 @@ def mk_superset_datasource_bundle(header: Header, def mk_superset_visualization_bundle(header: Header, - mitm_dataset_identifiers: MitMDatasetIdentifierBundle, + identifiers: MitMDatasetIdentifierBundle, visualization_types: Iterable[ VisualizationType], just_placeholders: bool = False) -> SupersetVisualizationBundle: return SupersetVisualizationBundle.combine(*( - mk_visualization(vzt, header, mitm_dataset_identifiers, just_placeholders=just_placeholders) for vzt + mk_visualization(vzt, header, identifiers, just_placeholders=just_placeholders) for vzt in set(visualization_types) )) diff --git a/mitm_tooling/transformation/superset/visualizations/abstract/mitm.py b/mitm_tooling/transformation/superset/visualizations/abstract/mitm.py index e62eaa4..e168f75 100644 --- a/mitm_tooling/transformation/superset/visualizations/abstract/mitm.py +++ b/mitm_tooling/transformation/superset/visualizations/abstract/mitm.py @@ -52,22 +52,24 @@ class MitMVisualizationsCreator(ABC): mitm_dataset_identifiers.ch_id_map, dashboard_identifier=find_dash_id(mitm_dataset_identifiers, self.viz_collection_name, - name), + creator.viz_name), viz_collection=self.viz_collection_name) for name, creator in creators.items()} def mk_placeholder_bundle(self, mitm_dataset_identifiers: MitMDatasetIdentifierBundle) -> SupersetVisualizationBundle: from .placeholders import EmptyDashboard + creators: dict[str, DashboardCreator] = {name: constr(self.header, mitm_dataset_identifiers.mitm_dataset) for + name, constr in self.dashboard_creator_constructors.items()} return SupersetVisualizationBundle.combine(*(EmptyDashboard().mk_bundle(mitm_dataset_identifiers.ds_id_map, mitm_dataset_identifiers.ch_id_map, dashboard_identifier=find_dash_id( mitm_dataset_identifiers, self.viz_collection_name, - name), + creator.viz_name), viz_collection=self.viz_collection_name) - for name in - self.dashboard_creator_constructors)) + for name, creator in + creators.items())) def mk_bundle(self, mitm_dataset_identifiers: MitMDatasetIdentifierBundle) -> SupersetVisualizationBundle: diff --git a/mitm_tooling/transformation/superset/visualizations/registry.py b/mitm_tooling/transformation/superset/visualizations/registry.py index 1cbc1e4..cf19ff1 100644 --- a/mitm_tooling/transformation/superset/visualizations/registry.py +++ b/mitm_tooling/transformation/superset/visualizations/registry.py @@ -23,20 +23,20 @@ def get_mitm_visualization_creator(mitm: MITM, visualization_type: Visualization def mk_visualization(visualization_type: VisualizationType, header: Header, - mitm_dataset_identifiers: MitMDatasetIdentifierBundle, + identifiers: MitMDatasetIdentifierBundle, just_placeholders: bool = False) -> SupersetVisualizationBundle | None: if (creator_cls := get_mitm_visualization_creator(header.mitm, visualization_type)) is not None: creator = creator_cls(header) if just_placeholders: - return creator.mk_placeholder_bundle(mitm_dataset_identifiers) + return creator.mk_placeholder_bundle(identifiers) else: - return creator.mk_bundle(mitm_dataset_identifiers) + return creator.mk_bundle(identifiers) return None def mk_visualizations(visualization_types: Iterable[VisualizationType], header: Header, - mitm_dataset_identifiers: MitMDatasetIdentifierBundle, + identifiers: MitMDatasetIdentifierBundle, just_placeholders: bool = False) -> dict[VisualizationType, SupersetVisualizationBundle]: return {vt: viz for vt in set(visualization_types) if ( - viz := mk_visualization(vt, header, mitm_dataset_identifiers, just_placeholders=just_placeholders) is not None)} + (viz := mk_visualization(vt, header, identifiers, just_placeholders=just_placeholders)) is not None)} -- GitLab