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