77from datetime import date , datetime , time
88from functools import partial
99import re
10+ from typing import Iterator , Optional , Union , overload
1011import warnings
1112
1213import numpy as np
@@ -162,6 +163,7 @@ def execute(sql, con, cur=None, params=None):
162163# -- Read and write to DataFrames
163164
164165
166+ @overload
165167def read_sql_table (
166168 table_name ,
167169 con ,
@@ -170,8 +172,35 @@ def read_sql_table(
170172 coerce_float = True ,
171173 parse_dates = None ,
172174 columns = None ,
173- chunksize = None ,
174- ):
175+ chunksize : None = None ,
176+ ) -> DataFrame :
177+ ...
178+
179+
180+ @overload
181+ def read_sql_table (
182+ table_name ,
183+ con ,
184+ schema = None ,
185+ index_col = None ,
186+ coerce_float = True ,
187+ parse_dates = None ,
188+ columns = None ,
189+ chunksize : int = 1 ,
190+ ) -> Iterator [DataFrame ]:
191+ ...
192+
193+
194+ def read_sql_table (
195+ table_name ,
196+ con ,
197+ schema = None ,
198+ index_col = None ,
199+ coerce_float = True ,
200+ parse_dates = None ,
201+ columns = None ,
202+ chunksize : Optional [int ] = None ,
203+ ) -> Union [DataFrame , Iterator [DataFrame ]]:
175204 """
176205 Read SQL database table into a DataFrame.
177206
@@ -210,7 +239,7 @@ def read_sql_table(
210239
211240 Returns
212241 -------
213- DataFrame
242+ DataFrame or Iterator[DataFrame]
214243 A SQL table is returned as two-dimensional data structure with labeled
215244 axes.
216245
@@ -257,15 +286,41 @@ def read_sql_table(
257286 raise ValueError (f"Table { table_name } not found" , con )
258287
259288
289+ @overload
260290def read_sql_query (
261291 sql ,
262292 con ,
263293 index_col = None ,
264294 coerce_float = True ,
265295 params = None ,
266296 parse_dates = None ,
267- chunksize = None ,
268- ):
297+ chunksize : None = None ,
298+ ) -> DataFrame :
299+ ...
300+
301+
302+ @overload
303+ def read_sql_query (
304+ sql ,
305+ con ,
306+ index_col = None ,
307+ coerce_float = True ,
308+ params = None ,
309+ parse_dates = None ,
310+ chunksize : int = 1 ,
311+ ) -> Iterator [DataFrame ]:
312+ ...
313+
314+
315+ def read_sql_query (
316+ sql ,
317+ con ,
318+ index_col = None ,
319+ coerce_float = True ,
320+ params = None ,
321+ parse_dates = None ,
322+ chunksize : Optional [int ] = None ,
323+ ) -> Union [DataFrame , Iterator [DataFrame ]]:
269324 """
270325 Read SQL query into a DataFrame.
271326
@@ -308,7 +363,7 @@ def read_sql_query(
308363
309364 Returns
310365 -------
311- DataFrame
366+ DataFrame or Iterator[DataFrame]
312367
313368 See Also
314369 --------
@@ -331,6 +386,7 @@ def read_sql_query(
331386 )
332387
333388
389+ @overload
334390def read_sql (
335391 sql ,
336392 con ,
@@ -339,8 +395,35 @@ def read_sql(
339395 params = None ,
340396 parse_dates = None ,
341397 columns = None ,
342- chunksize = None ,
343- ):
398+ chunksize : None = None ,
399+ ) -> DataFrame :
400+ ...
401+
402+
403+ @overload
404+ def read_sql (
405+ sql ,
406+ con ,
407+ index_col = None ,
408+ coerce_float = True ,
409+ params = None ,
410+ parse_dates = None ,
411+ columns = None ,
412+ chunksize : int = 1 ,
413+ ) -> Iterator [DataFrame ]:
414+ ...
415+
416+
417+ def read_sql (
418+ sql ,
419+ con ,
420+ index_col = None ,
421+ coerce_float = True ,
422+ params = None ,
423+ parse_dates = None ,
424+ columns = None ,
425+ chunksize : Optional [int ] = None ,
426+ ) -> Union [DataFrame , Iterator [DataFrame ]]:
344427 """
345428 Read SQL query or database table into a DataFrame.
346429
@@ -391,7 +474,7 @@ def read_sql(
391474
392475 Returns
393476 -------
394- DataFrame
477+ DataFrame or Iterator[DataFrame]
395478
396479 See Also
397480 --------
@@ -448,7 +531,7 @@ def to_sql(
448531 chunksize = None ,
449532 dtype = None ,
450533 method = None ,
451- ):
534+ ) -> None :
452535 """
453536 Write records stored in a DataFrame to a SQL database.
454537
0 commit comments