33import json
44import re
55from pathlib import Path
6- from typing import Optional , Union
6+ from typing import Union
77
88import attrs
99from gooddata_sdk import CatalogDeclarativeColumn , CatalogDeclarativeTable , CatalogDeclarativeTables
2727
2828@attrs .define (auto_attribs = True , kw_only = True )
2929class DbtModelMetaGoodDataTableProps (Base ):
30- model_id : Optional [ str ] = None
30+ model_id : str | None = None
3131
3232
3333@attrs .define (auto_attribs = True , kw_only = True )
3434class DbtModelMetaGoodDataColumnProps (Base ):
35- id : Optional [ str ] = None
36- ldm_type : Optional [ GoodDataLdmType ] = None
37- referenced_table : Optional [ str ] = None
38- label_type : Optional [ GoodDataLabelType ] = None
39- attribute_column : Optional [ str ] = None
40- sort_column : Optional [ str ] = None
41- sort_direction : Optional [ GoodDataSortDirection ] = None
42- default_view : Optional [ bool ] = None
35+ id : str | None = None
36+ ldm_type : GoodDataLdmType | None = None
37+ referenced_table : str | None = None
38+ label_type : GoodDataLabelType | None = None
39+ attribute_column : str | None = None
40+ sort_column : str | None = None
41+ sort_direction : GoodDataSortDirection | None = None
42+ default_view : bool | None = None
4343
4444 @property
45- def gooddata_ref_table_ldm_id (self ) -> Optional [ str ] :
45+ def gooddata_ref_table_ldm_id (self ) -> str | None :
4646 if self .referenced_table :
4747 return self .referenced_table .lower ()
4848 return None
@@ -73,7 +73,7 @@ class DbtModelBase(Base):
7373 tags : list [str ]
7474 # If 2+ references point to the same table, the table plays multiple roles,
7575 # it must be generated as multiple datasets
76- role_name : Optional [ str ] = None
76+ role_name : str | None = None
7777
7878 # TODO - duplicate of backend logic.
7979 # Solution: use result of generateLdm as a master template, and override based on dbt metadata only if necessary
@@ -120,7 +120,7 @@ def upper_case_name(self) -> None:
120120
121121@attrs .define (auto_attribs = True , kw_only = True )
122122class DbtModelColumn (DbtModelBase ):
123- data_type : Optional [ str ]
123+ data_type : str | None
124124 meta : DbtModelMetaGoodDataColumn = attrs .field (factory = DbtModelMetaGoodDataColumn )
125125
126126 # Enable to override LDM ID for LDM entities derived from columns (attributes, ...)
@@ -130,21 +130,21 @@ def ldm_id(self) -> str:
130130 return self .meta .gooddata .id or self .gooddata_ldm_id
131131
132132 @property
133- def ldm_type (self ) -> Optional [ str ] :
133+ def ldm_type (self ) -> str | None :
134134 if self .meta .gooddata .ldm_type is None :
135135 return None
136136 else :
137137 return self .meta .gooddata .ldm_type .value
138138
139139 @property
140- def label_type (self ) -> Optional [ str ] :
140+ def label_type (self ) -> str | None :
141141 if self .meta .gooddata .label_type is None :
142142 return None
143143 else :
144144 return self .meta .gooddata .label_type .value
145145
146146 @property
147- def sort_direction (self ) -> Optional [ str ] :
147+ def sort_direction (self ) -> str | None :
148148 if self .meta .gooddata .sort_direction is None :
149149 return None
150150 else :
@@ -387,7 +387,7 @@ def make_facts(table: DbtModelTable) -> list[dict]:
387387 return facts
388388
389389 @staticmethod
390- def make_labels (table : DbtModelTable , attribute_column : DbtModelColumn ) -> tuple [list [dict ], Optional [ dict ] ]:
390+ def make_labels (table : DbtModelTable , attribute_column : DbtModelColumn ) -> tuple [list [dict ], dict | None ]:
391391 labels = []
392392 default_view = None
393393 for column in table .columns .values ():
@@ -507,7 +507,7 @@ def populate_role_playing_tables(tables: list[DbtModelTable], role_playing_table
507507 result .append (table )
508508 return result
509509
510- def make_declarative_datasets (self , data_source_id : str , model_ids : Optional [ list [str ]] ) -> dict :
510+ def make_declarative_datasets (self , data_source_id : str , model_ids : list [str ] | None ) -> dict :
511511 result : dict [str , list ] = {"datasets" : [], "date_instances" : []}
512512 model_tables = [t for t in self .tables if not model_ids or t .meta .gooddata .model_id in model_ids ]
513513 role_playing_tables = self .find_role_playing_tables (model_tables )
@@ -517,7 +517,7 @@ def make_declarative_datasets(self, data_source_id: str, model_ids: Optional[lis
517517 result = self .make_dataset (data_source_id , table , role_playing_tables , result )
518518 return result
519519
520- def get_entity_type (self , table_name : str , column_name : str ) -> Optional [ str ] :
520+ def get_entity_type (self , table_name : str , column_name : str ) -> str | None :
521521 comp_table_name = table_name
522522 if self .upper_case :
523523 comp_table_name = table_name .upper ()
0 commit comments