diff --git a/justfile b/justfile index d240c6a92be0249547b7f7d2e7e32352475d5979..953a8031f47e5d39f58448f548a90156efb018f9 100644 --- a/justfile +++ b/justfile @@ -13,7 +13,7 @@ sync: build: uv build -publish +publish: uv publish requirements: diff --git a/mitm_tooling/transformation/superset/asset_bundles/identifier.py b/mitm_tooling/transformation/superset/asset_bundles/identifier.py index 4fcb5ed37f8f2fbae63b3900a2f084be20d9ffae..8fa65b61e606c8823e3a288061fa2a8a373fe9d2 100644 --- a/mitm_tooling/transformation/superset/asset_bundles/identifier.py +++ b/mitm_tooling/transformation/superset/asset_bundles/identifier.py @@ -1,9 +1,10 @@ +from typing import Self from uuid import UUID import pydantic from mitm_tooling.transformation.superset.definitions import DatasetIdentifierMap, \ - DatabaseIdentifier, MitMDatasetIdentifier, BaseSupersetDefinition, DashboardIdentifier + DatabaseIdentifier, MitMDatasetIdentifier, BaseSupersetDefinition, DashboardIdentifier, SupersetMitMDatasetDef VizDashboardIdentifierMap = dict[str, DashboardIdentifier] VizCollectionIdentifierMap = dict[str, VizDashboardIdentifierMap] @@ -18,6 +19,11 @@ class DatasourceIdentifierBundle(BaseSupersetDefinition): if self.database is not None: return self.database.uuid + @classmethod + def from_mitm_dataset(cls, mitm_dataset: SupersetMitMDatasetDef) -> Self: + return cls(database=DatabaseIdentifier(uuid=mitm_dataset.database_uuid), + ds_id_map={t.table_name: t for t in (mitm_dataset.tables or [])}) + class MitMDatasetIdentifierBundle(DatasourceIdentifierBundle): mitm_dataset: MitMDatasetIdentifier | None = None @@ -27,3 +33,12 @@ class MitMDatasetIdentifierBundle(DatasourceIdentifierBundle): def mitm_dataset_uuid(self) -> UUID | None: if self.mitm_dataset is not None: return self.mitm_dataset.uuid + + @classmethod + def from_mitm_dataset(cls, mitm_dataset: SupersetMitMDatasetDef) -> Self: + return cls(mitm_dataset=mitm_dataset.identifier, + database=DatabaseIdentifier(uuid=mitm_dataset.database_uuid), + ds_id_map={t.table_name: t for t in (mitm_dataset.tables or [])}, + viz_id_map={ + 'default': {dash.dashboard_title: dash for dash in + (mitm_dataset.dashboards or [])}}) diff --git a/mitm_tooling/transformation/superset/definitions/mitm_dataset.py b/mitm_tooling/transformation/superset/definitions/mitm_dataset.py index 8df850e8ed813be58e784a7bd2e6dd486cb5396c..f0fd70d9694b5a4f2d034850009e40f3091fa7cf 100644 --- a/mitm_tooling/transformation/superset/definitions/mitm_dataset.py +++ b/mitm_tooling/transformation/superset/definitions/mitm_dataset.py @@ -1,6 +1,6 @@ from mitm_tooling.definition import MITM from mitm_tooling.representation import Header -from mitm_tooling.transformation.superset.definitions import SupersetDefFile, StrUUID, DatasetIdentifier, \ +from ..definitions import SupersetDefFile, StrUUID, DatasetIdentifier, \ DashboardIdentifier, ChartIdentifier, \ MitMDatasetIdentifier, SupersetObjectMixin diff --git a/pyproject.toml b/pyproject.toml index 006bad0f6e607f144be40d3a648f55750154d1d3..ff734aa2a58b0b94bf5c0c8bb0889ad1a5428f4e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mitm-tooling" -version = "0.5.0" +version = "0.5.1" description = "" authors = [{ name = "Leah Tacke genannt Unterberg", email = "l.tgu@pads.rwth-aachen.de" }] requires-python = ">=3.11,<3.14" @@ -30,16 +30,6 @@ dev = [ [tool.uv] -[[tool.uv.index]] -name = "testpypi" -url = "https://test.pypi.org/" -explicit = true - -[[tool.uv.index]] -name = "PyPI" -url = "https://pypi.org/simple/" -default = true - [tool.hatch.build.targets.sdist] include = ["mitm_tooling"]