@@ -55,7 +55,7 @@ def cast_to(self, to):
5555@dataclass
5656class Code (ExprNode , Root ):
5757 code : str
58- args : Dict [str , Expr ] = None
58+ args : Optional [ Dict [str , Expr ] ] = None
5959
6060
6161def _expr_type (e : Expr ) -> type :
@@ -216,7 +216,7 @@ def intersect(self, other: "ITable"):
216216@dataclass
217217class Concat (ExprNode ):
218218 exprs : list
219- sep : str = None
219+ sep : Optional [ str ] = None
220220
221221
222222@dataclass
@@ -293,7 +293,7 @@ class WhenThen(ExprNode):
293293@dataclass
294294class CaseWhen (ExprNode ):
295295 cases : Sequence [WhenThen ]
296- else_expr : Expr = None
296+ else_expr : Optional [ Expr ] = None
297297
298298 @property
299299 def type (self ):
@@ -491,9 +491,9 @@ def schema(self) -> Schema:
491491@dataclass
492492class Join (ExprNode , ITable , Root ):
493493 source_tables : Sequence [ITable ]
494- op : str = None
495- on_exprs : Sequence [Expr ] = None
496- columns : Sequence [Expr ] = None
494+ op : Optional [ str ] = None
495+ on_exprs : Optional [ Sequence [Expr ] ] = None
496+ columns : Optional [ Sequence [Expr ] ] = None
497497
498498 @property
499499 def schema (self ) -> Schema :
@@ -534,9 +534,9 @@ def select(self, *exprs, **named_exprs) -> Union[Self, ITable]:
534534@dataclass
535535class GroupBy (ExprNode , ITable , Root ):
536536 table : ITable
537- keys : Sequence [Expr ] = None # IKey?
538- values : Sequence [Expr ] = None
539- having_exprs : Sequence [Expr ] = None
537+ keys : Optional [ Sequence [Expr ] ] = None # IKey?
538+ values : Optional [ Sequence [Expr ] ] = None
539+ having_exprs : Optional [ Sequence [Expr ] ] = None
540540
541541 def __post_init__ (self ):
542542 assert self .keys or self .values
@@ -580,15 +580,15 @@ def schema(self) -> Schema:
580580
581581@dataclass
582582class Select (ExprNode , ITable , Root ):
583- table : Expr = None
584- columns : Sequence [Expr ] = None
585- where_exprs : Sequence [Expr ] = None
586- order_by_exprs : Sequence [Expr ] = None
587- group_by_exprs : Sequence [Expr ] = None
588- having_exprs : Sequence [Expr ] = None
589- limit_expr : int = None
583+ table : Optional [ Expr ] = None
584+ columns : Optional [ Sequence [Expr ] ] = None
585+ where_exprs : Optional [ Sequence [Expr ] ] = None
586+ order_by_exprs : Optional [ Sequence [Expr ] ] = None
587+ group_by_exprs : Optional [ Sequence [Expr ] ] = None
588+ having_exprs : Optional [ Sequence [Expr ] ] = None
589+ limit_expr : Optional [ int ] = None
590590 distinct : bool = False
591- optimizer_hints : Sequence [Expr ] = None
591+ optimizer_hints : Optional [ Sequence [Expr ] ] = None
592592
593593 @property
594594 def schema (self ) -> Schema :
@@ -636,8 +636,8 @@ def make(cls, table: ITable, distinct: bool = SKIP, optimizer_hints: str = SKIP,
636636@dataclass
637637class Cte (ExprNode , ITable ):
638638 table : Expr
639- name : str = None
640- params : Sequence [str ] = None
639+ name : Optional [ str ] = None
640+ params : Optional [ Sequence [str ] ] = None
641641
642642 @property
643643 def source_table (self ) -> "ITable" :
@@ -667,7 +667,7 @@ def resolve_names(source_table, exprs):
667667@dataclass (frozen = False , eq = False , order = False )
668668class _ResolveColumn (ExprNode , LazyOps ):
669669 resolve_name : str
670- resolved : Expr = None
670+ resolved : Optional [ Expr ] = None
671671
672672 def resolve (self , expr : Expr ):
673673 if self .resolved is not None :
@@ -750,9 +750,9 @@ def type(self) -> Optional[type]:
750750class TimeTravel (ITable ):
751751 table : TablePath
752752 before : bool = False
753- timestamp : datetime = None
754- offset : int = None
755- statement : str = None
753+ timestamp : Optional [ datetime ] = None
754+ offset : Optional [ int ] = None
755+ statement : Optional [ str ] = None
756756
757757
758758# DDL
@@ -767,9 +767,9 @@ def type(self) -> Optional[type]:
767767@dataclass
768768class CreateTable (Statement ):
769769 path : TablePath
770- source_table : Expr = None
770+ source_table : Optional [ Expr ] = None
771771 if_not_exists : bool = False
772- primary_keys : List [str ] = None
772+ primary_keys : Optional [ List [str ] ] = None
773773
774774
775775@dataclass
@@ -787,8 +787,8 @@ class TruncateTable(Statement):
787787class InsertToTable (Statement ):
788788 path : TablePath
789789 expr : Expr
790- columns : List [str ] = None
791- returning_exprs : List [str ] = None
790+ columns : Optional [ List [str ] ] = None
791+ returning_exprs : Optional [ List [str ] ] = None
792792
793793 def returning (self , * exprs ) -> Self :
794794 """Add a 'RETURNING' clause to the insert expression.
0 commit comments