Skip to content

Commit

Permalink
refactor: change AnalyzerContext to NamedTuple
Browse files Browse the repository at this point in the history
  • Loading branch information
reata committed Sep 2, 2023
1 parent 5680bec commit e508420
Showing 1 changed file with 9 additions and 23 deletions.
32 changes: 9 additions & 23 deletions sqllineage/utils/entities.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import Any, NamedTuple, Optional, Set, Union
from typing import Any, List, NamedTuple, Optional, Set, Union

from sqllineage.core.models import SubQuery, Table
from sqllineage.core.models import Column, SubQuery, Table


class SubQueryTuple(NamedTuple):
Expand All @@ -13,24 +13,10 @@ class ColumnQualifierTuple(NamedTuple):
qualifier: Optional[str]


class AnalyzerContext:
"""
Data class to hold the analyzer context
"""

def __init__(
self,
cte: Optional[Set[SubQuery]] = None,
write: Optional[Set[Union[SubQuery, Table]]] = None,
write_columns=None,
):
"""
:param cte: CTE queries that can be select from in current query context
:param write: table that current top-level query is writing to, subquery in case of subquery context
:param write_columns: columns that write table specifies, used for `INSERT INTO x (col1, col2) SELECT` syntax
"""
self.cte = cte
self.write = write
if write_columns is None:
write_columns = []
self.write_columns = write_columns
class AnalyzerContext(NamedTuple):
# CTE queries that can be select from in current query context
cte: Optional[Set[SubQuery]] = None
# table that current top-level query is writing to, subquery in case of subquery context
write: Optional[Set[Union[SubQuery, Table]]] = None
# columns that write table specifies, used for `INSERT INTO x (col1, col2) SELECT` syntax
write_columns: Optional[List[Column]] = None

0 comments on commit e508420

Please sign in to comment.