11from abc import ABC , abstractmethod
2- import pyarrow as pa
3- from vegafusion .proto .datafusion_pb2 import LogicalExprNode
2+ from typing import Optional , List , Literal , Union , Any , TYPE_CHECKING
43
5- from typing import Optional , List , Literal , Union , Any
4+ if TYPE_CHECKING :
5+ from pyarrow import Schema , Table
6+ from vegafusion .proto .datafusion_pb2 import LogicalExprNode
67
78
89class DataFrameOperationNotSupportedError (RuntimeError ):
@@ -19,12 +20,12 @@ class DataFrameDataset(ABC):
1920 """
2021
2122 @abstractmethod
22- def schema (self ) -> pa . Schema :
23+ def schema (self ) -> " Schema" :
2324 """DataFrame's pyarrow schema"""
2425 raise NotImplementedError ()
2526
2627 @abstractmethod
27- def collect (self ) -> pa . Table :
28+ def collect (self ) -> " Table" :
2829 """Return DataFrame's value as a pyarrow Table"""
2930 raise NotImplementedError ()
3031
@@ -47,7 +48,7 @@ def main_thread(self) -> bool:
4748 return True
4849
4950 def sort (
50- self , exprs : List [LogicalExprNode ], limit : Optional [int ]
51+ self , exprs : List [" LogicalExprNode" ], limit : Optional [int ]
5152 ) -> "DataFrameDataset" :
5253 """
5354 Sort and optionally limit dataset
@@ -58,7 +59,7 @@ def sort(
5859 """
5960 raise DataFrameOperationNotSupportedError ()
6061
61- def select (self , exprs : List [LogicalExprNode ]) -> "DataFrameDataset" :
62+ def select (self , exprs : List [" LogicalExprNode" ]) -> "DataFrameDataset" :
6263 """
6364 Select columns from Dataset. Selection expressions may include column names,
6465 column expressions, or window expressions
@@ -69,7 +70,7 @@ def select(self, exprs: List[LogicalExprNode]) -> "DataFrameDataset":
6970 raise DataFrameOperationNotSupportedError ()
7071
7172 def aggregate (
72- self , group_exprs : List [LogicalExprNode ], agg_exprs : List [LogicalExprNode ]
73+ self , group_exprs : List [" LogicalExprNode" ], agg_exprs : List [" LogicalExprNode" ]
7374 ) -> "DataFrameDataset" :
7475 """
7576 Perform dataset aggregation. Resulting dataset includes grouping
@@ -82,7 +83,7 @@ def aggregate(
8283 raise DataFrameOperationNotSupportedError ()
8384
8485 def joinaggregate (
85- self , group_exprs : List [LogicalExprNode ], agg_exprs : List [LogicalExprNode ]
86+ self , group_exprs : List [" LogicalExprNode" ], agg_exprs : List [" LogicalExprNode" ]
8687 ) -> "DataFrameDataset" :
8788 """
8889 Perform joinaggregate dataset operation.
@@ -95,7 +96,7 @@ def joinaggregate(
9596 """
9697 raise DataFrameOperationNotSupportedError ()
9798
98- def filter (self , predicate : LogicalExprNode ) -> "DataFrameDataset" :
99+ def filter (self , predicate : " LogicalExprNode" ) -> "DataFrameDataset" :
99100 """
100101 Filter dataset by predicate expression
101102
@@ -135,7 +136,7 @@ def fold(
135136 def stack (
136137 self ,
137138 field : str ,
138- orderby : List [LogicalExprNode ],
139+ orderby : List [" LogicalExprNode" ],
139140 groupby : List [str ],
140141 start_field : str ,
141142 stop_field : str ,
0 commit comments