1818 RunDTO ,
1919 SchemaDTO ,
2020 SQLQueryDTO ,
21+ TagDTO ,
22+ TagValueDTO ,
2123 UserDTO ,
2224)
2325
2426T = TypeVar (
2527 "T" ,
26- LocationDTO ,
27- DatasetDTO ,
2828 ColumnLineageDTO ,
29+ DatasetDTO ,
2930 DatasetSymlinkDTO ,
31+ InputDTO ,
3032 JobDTO ,
3133 JobTypeDTO ,
32- RunDTO ,
34+ LocationDTO ,
3335 OperationDTO ,
34- InputDTO ,
3536 OutputDTO ,
37+ RunDTO ,
3638 SchemaDTO ,
3739 SQLQueryDTO ,
40+ TagDTO ,
41+ TagValueDTO ,
3842 UserDTO ,
3943)
4044
@@ -70,6 +74,8 @@ def __init__(self):
7074 self ._column_lineage : dict [tuple , ColumnLineageDTO ] = {}
7175 self ._schemas : dict [tuple , SchemaDTO ] = {}
7276 self ._sql_queries : dict [tuple , SQLQueryDTO ] = {}
77+ self ._tags : dict [tuple , TagDTO ] = {}
78+ self ._tag_values : dict [tuple , TagValueDTO ] = {}
7379 self ._users : dict [tuple , UserDTO ] = {}
7480
7581 def __repr__ (self ):
@@ -87,6 +93,8 @@ def __repr__(self):
8793 f"column_lineage={ len (self ._column_lineage )} , "
8894 f"schemas={ len (self ._schemas )} , "
8995 f"sql_queries={ len (self ._sql_queries )} , "
96+ f"tag_values={ len (self ._tags )} , "
97+ f"tag_values={ len (self ._tag_values )} , "
9098 f"users={ len (self ._users )} "
9199 ")"
92100 )
@@ -125,6 +133,7 @@ def add_job(self, job: JobDTO):
125133 job .location = self .add_location (job .location )
126134 if job .type :
127135 job .type = self .add_job_type (job .type )
136+ job .tag_values = {self .add_tag_value (tag_value ) for tag_value in job .tag_values }
128137 return self ._add (self ._jobs , job )
129138
130139 def add_run (self , run : RunDTO ):
@@ -167,6 +176,13 @@ def add_schema(self, schema: SchemaDTO):
167176 def add_sql_query (self , sql_query : SQLQueryDTO ):
168177 return self ._add (self ._sql_queries , sql_query )
169178
179+ def add_tag (self , tag : TagDTO ):
180+ return self ._add (self ._tags , tag )
181+
182+ def add_tag_value (self , tag_value : TagValueDTO ):
183+ tag_value .tag = self .add_tag (tag_value .tag )
184+ return self ._add (self ._tag_values , tag_value )
185+
170186 def add_user (self , user : UserDTO ):
171187 return self ._add (self ._users , user )
172188
@@ -182,6 +198,12 @@ def get_sql_query(self, sql_query_key: tuple) -> SQLQueryDTO:
182198 def get_user (self , user_key : tuple ) -> UserDTO :
183199 return self ._users [user_key ]
184200
201+ def get_tag (self , tag_key : tuple ) -> TagDTO :
202+ return self ._tags [tag_key ]
203+
204+ def get_tag_value (self , tag_value_key : tuple ) -> TagValueDTO :
205+ return self ._tag_values [tag_value_key ]
206+
185207 def get_dataset (self , dataset_key : tuple ) -> DatasetDTO :
186208 dataset = self ._datasets [dataset_key ]
187209 dataset .location = self .get_location (dataset .location .unique_key )
@@ -201,6 +223,7 @@ def get_job(self, job_key: tuple) -> JobDTO:
201223 job .location = self .get_location (job .location .unique_key )
202224 if job .type :
203225 job .type = self .get_job_type (job .type .unique_key )
226+ job .tag_values = {self .get_tag_value (tag_value .unique_key ) for tag_value in job .tag_values }
204227 return job
205228
206229 def get_run (self , run_key : tuple ) -> RunDTO :
@@ -282,6 +305,12 @@ def schemas(self) -> list[SchemaDTO]:
282305 def sql_queries (self ) -> list [SQLQueryDTO ]:
283306 return self ._resolve (self .get_sql_query , self ._sql_queries )
284307
308+ def tags (self ) -> list [TagDTO ]:
309+ return self ._resolve (self .get_tag , self ._tags )
310+
311+ def tag_values (self ) -> list [TagValueDTO ]:
312+ return self ._resolve (self .get_tag_value , self ._tag_values )
313+
285314 def users (self ) -> list [UserDTO ]:
286315 return self ._resolve (self .get_user , self ._users )
287316
@@ -322,6 +351,12 @@ def merge(self, other: BatchExtractionResult) -> BatchExtractionResult: # noqa:
322351 for sql_query in other .sql_queries ():
323352 self .add_sql_query (sql_query )
324353
354+ for tag in other .tags ():
355+ self .add_tag (tag )
356+
357+ for tag_value in other .tag_values ():
358+ self .add_tag_value (tag_value )
359+
325360 for user in other .users ():
326361 self .add_user (user )
327362
0 commit comments