From 39f683f122c45375c3a470372b95904ffb8312e2 Mon Sep 17 00:00:00 2001
From: Leah Tacke genannt Unterberg <leah.tgu@pads.rwth-aachen.de>
Date: Tue, 21 Jan 2025 15:19:06 +0100
Subject: [PATCH] minor fix in sql representation

---
 mitm_tooling/representation/sql_representation.py         | 8 +++++++-
 .../transformation/superset/dataset_definition.py         | 1 +
 .../transformation/superset/superset_representation.py    | 5 +++--
 pyproject.toml                                            | 4 ++--
 4 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/mitm_tooling/representation/sql_representation.py b/mitm_tooling/representation/sql_representation.py
index 3a111d4..e88c684 100644
--- a/mitm_tooling/representation/sql_representation.py
+++ b/mitm_tooling/representation/sql_representation.py
@@ -1,4 +1,7 @@
+from __future__ import annotations
+
 from collections.abc import Callable, Generator, Mapping
+from typing import TYPE_CHECKING
 
 import pydantic
 import sqlalchemy as sa
@@ -8,7 +11,6 @@ from mitm_tooling.data_types import MITMDataType
 from mitm_tooling.definition import MITMDefinition, ConceptProperties, OwnedRelations, ConceptName, MITM, get_mitm_def, \
     RelationName
 from mitm_tooling.definition.definition_tools import map_col_groups, ColGroupMaps
-from mitm_tooling.extraction.sql.data_models import Queryable, TableName
 from .intermediate_representation import Header, MITMData
 from mitm_tooling.utilities.sql_utils import create_sa_engine, qualify
 from mitm_tooling.utilities import python_utils
@@ -16,6 +18,10 @@ from mitm_tooling.utilities.io_utils import FilePath
 
 from sqlalchemy_utils.view import create_view
 
+if TYPE_CHECKING:
+    from mitm_tooling.extraction.sql.data_models import Queryable
+from mitm_tooling.extraction.sql.data_models.table_identifiers import TableName
+
 SQL_REPRESENTATION_DEFAULT_SCHEMA = 'main'
 
 
diff --git a/mitm_tooling/transformation/superset/dataset_definition.py b/mitm_tooling/transformation/superset/dataset_definition.py
index 92190d4..7f0a6dc 100644
--- a/mitm_tooling/transformation/superset/dataset_definition.py
+++ b/mitm_tooling/transformation/superset/dataset_definition.py
@@ -80,6 +80,7 @@ class SupersetTableDef(SupersetDefFile):
     table_name: str
     schema_name: str = pydantic.Field(alias='schema')
     uuid: BetterUUID
+    database_uuid: BetterUUID
     main_dttm_col: str | None = None
     description: str | None = None
     default_endpoint: str | None = None
diff --git a/mitm_tooling/transformation/superset/superset_representation.py b/mitm_tooling/transformation/superset/superset_representation.py
index 7fe29aa..b40cda4 100644
--- a/mitm_tooling/transformation/superset/superset_representation.py
+++ b/mitm_tooling/transformation/superset/superset_representation.py
@@ -64,6 +64,7 @@ def infer_superset_dataset_def(sqlite_file_path: FilePath) -> SupersetDef:
     meta, _ = connect_and_reflect(engine)
     db_meta = DBMetaInfo.from_sa_meta(meta, default_schema=SQL_REPRESENTATION_DEFAULT_SCHEMA)
 
+    database_uuid = uuid.uuid4()
     datasets = []
     for schema_name, schema_tables in db_meta.db_structure.items():
         for table_name, table in schema_tables.items():
@@ -81,13 +82,13 @@ def infer_superset_dataset_def(sqlite_file_path: FilePath) -> SupersetDef:
                                           dialect=engine.dialect)
                                       ))
             datasets.append(
-                SupersetTableDef(table_name=table_name, schema_name=schema_name, uuid=uuid.uuid4(), columns=cols))
+                SupersetTableDef(table_name=table_name, schema_name=schema_name, uuid=uuid.uuid4(), database_uuid=database_uuid, columns=cols))
 
     db_name = os.path.splitext(os.path.basename(sqlite_file_path))[0]
     return SupersetDef(
         database=SupersetDatabaseDef(database_name=db_name,
                                      sqlalchemy_uri=tentative_superset_mount_url(db_name),
-                                     uuid=uuid.uuid4()),
+                                     uuid=database_uuid),
         datasets=datasets)
 
 
diff --git a/pyproject.toml b/pyproject.toml
index f37e9de..c331ee1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "mitm-tooling"
-version = "0.3.0"
+version = "0.3.1"
 description = ""
 authors = ["Leah Tacke genannt Unterberg <leah.tgu@pads.rwth-aachen.de>"]
 readme = "README.md"
@@ -13,7 +13,7 @@ pyyaml = "6.0.2"
 genson = "^1.3.0"
 
 sqlalchemy = { version = "^2.0.34", extras = ["postgresql-psycopg", "postgresql"] }
-sqlalchemy-utils = "0.41.2"
+sqlalchemy-utils = ">=0.38.0"
 pandas = { version = "^2.0", extras = ["performance", "excel", "hdf5", "output_formatting", "computation", "postgresql", "mysql", "sql-other", "plot", "compression"] }
 
 # visualization
-- 
GitLab