11import asyncio
22from typing import (
33 Any ,
4+ AsyncIterator ,
45 Generic ,
5- Iterator ,
66 List ,
77 Optional ,
88 Sequence ,
1717import turu .core .async_cursor
1818import turu .core .cursor
1919import turu .core .mock
20- import turu .snowflake .record .async_record_cursor
2120from turu .core .cursor import map_row
2221from turu .snowflake .cursor import (
23- GenericNewPandasDataFrame ,
24- GenericNewPyArrowTable ,
2522 GenericNewRowType ,
26- GenericPandasDataFrame ,
27- GenericPyArrowTable ,
2823 GenericRowType ,
2924)
3025from turu .snowflake .features import (
26+ GenericNewPandasDataFrame ,
3127 GenericNewPanderaDataFrameModel ,
28+ GenericNewPyArrowTable ,
29+ GenericPandasDataFrame ,
30+ GenericPyArrowTable ,
3231 PandasDataFrame ,
3332 PanderaDataFrame ,
3433 PanderaDataFrameModel ,
@@ -152,23 +151,23 @@ async def execute_map(
152151 @overload
153152 async def execute_map (
154153 self ,
155- row_type : Type [GenericNewPyArrowTable ],
154+ row_type : Type [GenericNewPanderaDataFrameModel ],
156155 operation : str ,
157156 parameters : "Optional[Any]" = None ,
158157 / ,
159158 ** options : Unpack [ExecuteOptions ],
160- ) -> "AsyncCursor[Never, Never, GenericNewPyArrowTable ]" :
159+ ) -> "AsyncCursor[Never, PanderaDataFrame[GenericNewPanderaDataFrameModel], Never ]" :
161160 ...
162161
163162 @overload
164163 async def execute_map (
165164 self ,
166- row_type : Type [GenericNewPanderaDataFrameModel ],
165+ row_type : Type [GenericNewPyArrowTable ],
167166 operation : str ,
168167 parameters : "Optional[Any]" = None ,
169168 / ,
170169 ** options : Unpack [ExecuteOptions ],
171- ) -> "AsyncCursor[Never, PanderaDataFrame[GenericNewPanderaDataFrameModel], Never ]" :
170+ ) -> "AsyncCursor[Never, Never, GenericNewPyArrowTable ]" :
172171 ...
173172
174173 @override
@@ -228,23 +227,23 @@ async def executemany_map(
228227 @overload
229228 async def executemany_map (
230229 self ,
231- row_type : Type [GenericNewPyArrowTable ],
230+ row_type : Type [GenericNewPanderaDataFrameModel ],
232231 operation : str ,
233232 seq_of_parameters : "Sequence[Any]" ,
234233 / ,
235234 ** options : Unpack [ExecuteOptions ],
236- ) -> "AsyncCursor[Never, Never, GenericNewPyArrowTable ]" :
235+ ) -> "AsyncCursor[Never, PanderaDataFrame[GenericNewPanderaDataFrameModel], Never ]" :
237236 ...
238237
239238 @overload
240239 async def executemany_map (
241240 self ,
242- row_type : Type [GenericNewPanderaDataFrameModel ],
241+ row_type : Type [GenericNewPyArrowTable ],
243242 operation : str ,
244243 seq_of_parameters : "Sequence[Any]" ,
245244 / ,
246245 ** options : Unpack [ExecuteOptions ],
247- ) -> "AsyncCursor[Never, PanderaDataFrame[GenericNewPanderaDataFrameModel], Never ]" :
246+ ) -> "AsyncCursor[Never, Never, GenericNewPyArrowTable ]" :
248247 ...
249248
250249 @override
@@ -313,12 +312,11 @@ async def fetch_arrow_all(self) -> GenericPyArrowTable:
313312 self ._raw_cursor .fetch_arrow_all (force_return_table = True ),
314313 )
315314
316- async def fetch_arrow_batches (self ) -> Iterator [GenericPyArrowTable ]:
315+ async def fetch_arrow_batches (self ) -> AsyncIterator [GenericPyArrowTable ]:
317316 """Fetches Arrow Tables in batches, where 'batch' refers to Snowflake Chunk."""
318317
319- return cast (
320- Iterator [GenericPyArrowTable ], self ._raw_cursor .fetch_arrow_batches ()
321- )
318+ for batch in self ._raw_cursor .fetch_arrow_batches ():
319+ yield cast (GenericPyArrowTable , batch )
322320
323321 async def fetch_pandas_all (self , ** kwargs ) -> GenericPandasDataFrame :
324322 """Fetch Pandas dataframes."""
@@ -330,13 +328,16 @@ async def fetch_pandas_all(self, **kwargs) -> GenericPandasDataFrame:
330328
331329 return cast (GenericPandasDataFrame , df )
332330
333- async def fetch_pandas_batches (self , ** kwargs ) -> Iterator [GenericPandasDataFrame ]:
331+ async def fetch_pandas_batches (
332+ self , ** kwargs
333+ ) -> AsyncIterator [GenericPandasDataFrame ]:
334334 """Fetch Pandas dataframes in batches, where 'batch' refers to Snowflake Chunk."""
335335
336- return cast (
337- Iterator [GenericPandasDataFrame ],
338- self ._raw_cursor .fetch_pandas_batches (** kwargs ),
339- )
336+ for batch in self ._raw_cursor .fetch_pandas_batches (** kwargs ):
337+ yield cast (
338+ GenericPandasDataFrame ,
339+ batch ,
340+ )
340341
341342 @override
342343 async def __anext__ (self ) -> GenericRowType :
@@ -401,4 +402,6 @@ async def _execute_async(
401402 def _AsyncRecordCursor (
402403 self ,
403404 ):
405+ import turu .snowflake .record .async_record_cursor
406+
404407 return turu .snowflake .record .async_record_cursor .AsyncRecordCursor
0 commit comments