Files
dash-api/lib/python3.11/site-packages/pandas-stubs/io/sql.pyi
2025-09-07 22:09:54 +02:00

203 lines
6.0 KiB
Python

from collections.abc import (
Callable,
Generator,
Iterable,
Mapping,
)
import sqlite3
from typing import (
Any,
Literal,
overload,
)
from pandas.core.frame import DataFrame
import sqlalchemy.engine
from sqlalchemy.orm import FromStatement
import sqlalchemy.sql.expression
from typing_extensions import TypeAlias
from pandas._libs.lib import _NoDefaultDoNotUse
from pandas._typing import (
DtypeArg,
DtypeBackend,
Scalar,
npt,
)
_SQLConnection: TypeAlias = str | sqlalchemy.engine.Connectable | sqlite3.Connection
_SQLStatement: TypeAlias = (
str
| sqlalchemy.sql.expression.Selectable
| sqlalchemy.sql.expression.TextClause
| sqlalchemy.sql.Select
| FromStatement
| sqlalchemy.sql.expression.UpdateBase
)
@overload
def read_sql_table(
table_name: str,
con: _SQLConnection,
schema: str | None = ...,
index_col: str | list[str] | None = ...,
coerce_float: bool = ...,
parse_dates: list[str] | dict[str, str] | dict[str, dict[str, Any]] | None = ...,
columns: list[str] | None = ...,
*,
chunksize: int,
dtype_backend: DtypeBackend | _NoDefaultDoNotUse = ...,
) -> Generator[DataFrame, None, None]: ...
@overload
def read_sql_table(
table_name: str,
con: _SQLConnection,
schema: str | None = ...,
index_col: str | list[str] | None = ...,
coerce_float: bool = ...,
parse_dates: list[str] | dict[str, str] | dict[str, dict[str, Any]] | None = ...,
columns: list[str] | None = ...,
chunksize: None = ...,
dtype_backend: DtypeBackend | _NoDefaultDoNotUse = ...,
) -> DataFrame: ...
@overload
def read_sql_query(
sql: _SQLStatement,
con: _SQLConnection,
index_col: str | list[str] | None = ...,
coerce_float: bool = ...,
params: (
list[Scalar]
| tuple[Scalar, ...]
| tuple[tuple[Scalar, ...], ...]
| Mapping[str, Scalar]
| Mapping[str, tuple[Scalar, ...]]
| None
) = ...,
parse_dates: list[str] | dict[str, str] | dict[str, dict[str, Any]] | None = ...,
*,
chunksize: int,
dtype: DtypeArg | None = ...,
dtype_backend: DtypeBackend | _NoDefaultDoNotUse = ...,
) -> Generator[DataFrame, None, None]: ...
@overload
def read_sql_query(
sql: _SQLStatement,
con: _SQLConnection,
index_col: str | list[str] | None = ...,
coerce_float: bool = ...,
params: (
list[Scalar]
| tuple[Scalar, ...]
| tuple[tuple[Scalar, ...], ...]
| Mapping[str, Scalar]
| Mapping[str, tuple[Scalar, ...]]
| None
) = ...,
parse_dates: list[str] | dict[str, str] | dict[str, dict[str, Any]] | None = ...,
chunksize: None = ...,
dtype: DtypeArg | None = ...,
dtype_backend: DtypeBackend | _NoDefaultDoNotUse = ...,
) -> DataFrame: ...
@overload
def read_sql(
sql: _SQLStatement,
con: _SQLConnection,
index_col: str | list[str] | None = ...,
coerce_float: bool = ...,
params: (
list[Scalar]
| tuple[Scalar, ...]
| tuple[tuple[Scalar, ...], ...]
| Mapping[str, Scalar]
| Mapping[str, tuple[Scalar, ...]]
| None
) = ...,
parse_dates: list[str] | dict[str, str] | dict[str, dict[str, Any]] | None = ...,
columns: list[str] | None = ...,
*,
chunksize: int,
dtype: DtypeArg | None = ...,
dtype_backend: DtypeBackend | _NoDefaultDoNotUse = ...,
) -> Generator[DataFrame, None, None]: ...
@overload
def read_sql(
sql: _SQLStatement,
con: _SQLConnection,
index_col: str | list[str] | None = ...,
coerce_float: bool = ...,
params: (
list[Scalar]
| tuple[Scalar, ...]
| tuple[tuple[Scalar, ...], ...]
| Mapping[str, Scalar]
| Mapping[str, tuple[Scalar, ...]]
| None
) = ...,
parse_dates: list[str] | dict[str, str] | dict[str, dict[str, Any]] | None = ...,
columns: list[str] | None = ...,
chunksize: None = ...,
dtype: DtypeArg | None = ...,
dtype_backend: DtypeBackend | _NoDefaultDoNotUse = ...,
) -> DataFrame: ...
class PandasSQL:
def to_sql(
self,
frame: DataFrame,
name: str,
if_exists: Literal["fail", "replace", "append"] = ...,
index: bool = ...,
index_label=...,
schema: str | None = ...,
chunksize=...,
dtype: DtypeArg | None = ...,
method: (
Literal["multi"]
| Callable[[SQLTable, Any, list[str], Iterable], int | None]
| None
) = ...,
engine: str = ...,
**engine_kwargs: dict[str, Any] | None,
) -> int | None: ...
class SQLTable:
name: str
pd_sql: PandasSQL # pandas SQL interface
prefix: str
frame: DataFrame | None
index: list[str]
schema: str
if_exists: Literal["fail", "replace", "append"]
keys: list[str]
dtype: DtypeArg | None
table: Any # sqlalchemy.Table
def __init__(
self,
name: str,
pandas_sql_engine: PandasSQL,
frame: DataFrame | None = ...,
index: bool | str | list[str] | None = ...,
if_exists: Literal["fail", "replace", "append"] = ...,
prefix: str = ...,
index_label: str | list[str] | None = ...,
schema: str | None = ...,
keys: str | list[str] | None = ...,
dtype: DtypeArg | None = ...,
) -> None: ...
def exists(self) -> bool: ...
def sql_schema(self) -> str: ...
def create(self) -> None: ...
def insert_data(self) -> tuple[list[str], list[npt.NDArray]]: ...
def insert(
self, chunksize: int | None = ..., method: str | None = ...
) -> int | None: ...
def read(
self,
coerce_float: bool = ...,
parse_dates: bool | list[str] | None = ...,
columns: list[str] | None = ...,
chunksize: int | None = ...,
) -> DataFrame | Generator[DataFrame, None, None]: ...