Skip to content

Commit c5ea16f

Browse files
authored
TYP: add return types to read_sql|read_sql_query|read_sql_table (#34207)
1 parent 6ad157e commit c5ea16f

File tree

1 file changed

+93
-10
lines changed

1 file changed

+93
-10
lines changed

pandas/io/sql.py

Lines changed: 93 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from datetime import date, datetime, time
88
from functools import partial
99
import re
10+
from typing import Iterator, Optional, Union, overload
1011
import warnings
1112

1213
import 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
165167
def 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
260290
def 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
334390
def 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

Comments
 (0)