mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 21:14:48 +08:00
552 lines
19 KiB
Python
552 lines
19 KiB
Python
import sqlite3
|
|
import sys
|
|
from _typeshed import ReadableBuffer, StrOrBytesPath, SupportsLenAndGetItem, Unused
|
|
from collections.abc import Callable, Generator, Iterable, Iterator, Mapping
|
|
from datetime import date, datetime, time
|
|
from types import TracebackType
|
|
from typing import Any, Literal, Protocol, SupportsIndex, TypeVar, final, overload
|
|
from typing_extensions import Self, TypeAlias
|
|
|
|
_T = TypeVar("_T")
|
|
_ConnectionT = TypeVar("_ConnectionT", bound=Connection)
|
|
_CursorT = TypeVar("_CursorT", bound=Cursor)
|
|
_SqliteData: TypeAlias = str | ReadableBuffer | int | float | None
|
|
# Data that is passed through adapters can be of any type accepted by an adapter.
|
|
_AdaptedInputData: TypeAlias = _SqliteData | Any
|
|
# The Mapping must really be a dict, but making it invariant is too annoying.
|
|
_Parameters: TypeAlias = SupportsLenAndGetItem[_AdaptedInputData] | Mapping[str, _AdaptedInputData]
|
|
_Adapter: TypeAlias = Callable[[_T], _SqliteData]
|
|
_Converter: TypeAlias = Callable[[bytes], Any]
|
|
|
|
paramstyle: str
|
|
threadsafety: int
|
|
apilevel: str
|
|
Date = date
|
|
Time = time
|
|
Timestamp = datetime
|
|
|
|
def DateFromTicks(ticks: float) -> Date: ...
|
|
def TimeFromTicks(ticks: float) -> Time: ...
|
|
def TimestampFromTicks(ticks: float) -> Timestamp: ...
|
|
|
|
version_info: tuple[int, int, int]
|
|
sqlite_version_info: tuple[int, int, int]
|
|
Binary = memoryview
|
|
|
|
# The remaining definitions are imported from _sqlite3.
|
|
|
|
PARSE_COLNAMES: int
|
|
PARSE_DECLTYPES: int
|
|
SQLITE_ALTER_TABLE: int
|
|
SQLITE_ANALYZE: int
|
|
SQLITE_ATTACH: int
|
|
SQLITE_CREATE_INDEX: int
|
|
SQLITE_CREATE_TABLE: int
|
|
SQLITE_CREATE_TEMP_INDEX: int
|
|
SQLITE_CREATE_TEMP_TABLE: int
|
|
SQLITE_CREATE_TEMP_TRIGGER: int
|
|
SQLITE_CREATE_TEMP_VIEW: int
|
|
SQLITE_CREATE_TRIGGER: int
|
|
SQLITE_CREATE_VIEW: int
|
|
SQLITE_CREATE_VTABLE: int
|
|
SQLITE_DELETE: int
|
|
SQLITE_DENY: int
|
|
SQLITE_DETACH: int
|
|
SQLITE_DONE: int
|
|
SQLITE_DROP_INDEX: int
|
|
SQLITE_DROP_TABLE: int
|
|
SQLITE_DROP_TEMP_INDEX: int
|
|
SQLITE_DROP_TEMP_TABLE: int
|
|
SQLITE_DROP_TEMP_TRIGGER: int
|
|
SQLITE_DROP_TEMP_VIEW: int
|
|
SQLITE_DROP_TRIGGER: int
|
|
SQLITE_DROP_VIEW: int
|
|
SQLITE_DROP_VTABLE: int
|
|
SQLITE_FUNCTION: int
|
|
SQLITE_IGNORE: int
|
|
SQLITE_INSERT: int
|
|
SQLITE_OK: int
|
|
if sys.version_info >= (3, 11):
|
|
SQLITE_LIMIT_LENGTH: int
|
|
SQLITE_LIMIT_SQL_LENGTH: int
|
|
SQLITE_LIMIT_COLUMN: int
|
|
SQLITE_LIMIT_EXPR_DEPTH: int
|
|
SQLITE_LIMIT_COMPOUND_SELECT: int
|
|
SQLITE_LIMIT_VDBE_OP: int
|
|
SQLITE_LIMIT_FUNCTION_ARG: int
|
|
SQLITE_LIMIT_ATTACHED: int
|
|
SQLITE_LIMIT_LIKE_PATTERN_LENGTH: int
|
|
SQLITE_LIMIT_VARIABLE_NUMBER: int
|
|
SQLITE_LIMIT_TRIGGER_DEPTH: int
|
|
SQLITE_LIMIT_WORKER_THREADS: int
|
|
SQLITE_PRAGMA: int
|
|
SQLITE_READ: int
|
|
SQLITE_REINDEX: int
|
|
SQLITE_RECURSIVE: int
|
|
SQLITE_SAVEPOINT: int
|
|
SQLITE_SELECT: int
|
|
SQLITE_TRANSACTION: int
|
|
SQLITE_UPDATE: int
|
|
adapters: dict[tuple[type[Any], type[Any]], _Adapter[Any]]
|
|
converters: dict[str, _Converter]
|
|
sqlite_version: str
|
|
version: str
|
|
|
|
if sys.version_info >= (3, 11):
|
|
SQLITE_ABORT: int
|
|
SQLITE_ABORT_ROLLBACK: int
|
|
SQLITE_AUTH: int
|
|
SQLITE_AUTH_USER: int
|
|
SQLITE_BUSY: int
|
|
SQLITE_BUSY_RECOVERY: int
|
|
SQLITE_BUSY_SNAPSHOT: int
|
|
SQLITE_BUSY_TIMEOUT: int
|
|
SQLITE_CANTOPEN: int
|
|
SQLITE_CANTOPEN_CONVPATH: int
|
|
SQLITE_CANTOPEN_DIRTYWAL: int
|
|
SQLITE_CANTOPEN_FULLPATH: int
|
|
SQLITE_CANTOPEN_ISDIR: int
|
|
SQLITE_CANTOPEN_NOTEMPDIR: int
|
|
SQLITE_CANTOPEN_SYMLINK: int
|
|
SQLITE_CONSTRAINT: int
|
|
SQLITE_CONSTRAINT_CHECK: int
|
|
SQLITE_CONSTRAINT_COMMITHOOK: int
|
|
SQLITE_CONSTRAINT_FOREIGNKEY: int
|
|
SQLITE_CONSTRAINT_FUNCTION: int
|
|
SQLITE_CONSTRAINT_NOTNULL: int
|
|
SQLITE_CONSTRAINT_PINNED: int
|
|
SQLITE_CONSTRAINT_PRIMARYKEY: int
|
|
SQLITE_CONSTRAINT_ROWID: int
|
|
SQLITE_CONSTRAINT_TRIGGER: int
|
|
SQLITE_CONSTRAINT_UNIQUE: int
|
|
SQLITE_CONSTRAINT_VTAB: int
|
|
SQLITE_CORRUPT: int
|
|
SQLITE_CORRUPT_INDEX: int
|
|
SQLITE_CORRUPT_SEQUENCE: int
|
|
SQLITE_CORRUPT_VTAB: int
|
|
SQLITE_EMPTY: int
|
|
SQLITE_ERROR: int
|
|
SQLITE_ERROR_MISSING_COLLSEQ: int
|
|
SQLITE_ERROR_RETRY: int
|
|
SQLITE_ERROR_SNAPSHOT: int
|
|
SQLITE_FORMAT: int
|
|
SQLITE_FULL: int
|
|
SQLITE_INTERNAL: int
|
|
SQLITE_INTERRUPT: int
|
|
SQLITE_IOERR: int
|
|
SQLITE_IOERR_ACCESS: int
|
|
SQLITE_IOERR_AUTH: int
|
|
SQLITE_IOERR_BEGIN_ATOMIC: int
|
|
SQLITE_IOERR_BLOCKED: int
|
|
SQLITE_IOERR_CHECKRESERVEDLOCK: int
|
|
SQLITE_IOERR_CLOSE: int
|
|
SQLITE_IOERR_COMMIT_ATOMIC: int
|
|
SQLITE_IOERR_CONVPATH: int
|
|
SQLITE_IOERR_CORRUPTFS: int
|
|
SQLITE_IOERR_DATA: int
|
|
SQLITE_IOERR_DELETE: int
|
|
SQLITE_IOERR_DELETE_NOENT: int
|
|
SQLITE_IOERR_DIR_CLOSE: int
|
|
SQLITE_IOERR_DIR_FSYNC: int
|
|
SQLITE_IOERR_FSTAT: int
|
|
SQLITE_IOERR_FSYNC: int
|
|
SQLITE_IOERR_GETTEMPPATH: int
|
|
SQLITE_IOERR_LOCK: int
|
|
SQLITE_IOERR_MMAP: int
|
|
SQLITE_IOERR_NOMEM: int
|
|
SQLITE_IOERR_RDLOCK: int
|
|
SQLITE_IOERR_READ: int
|
|
SQLITE_IOERR_ROLLBACK_ATOMIC: int
|
|
SQLITE_IOERR_SEEK: int
|
|
SQLITE_IOERR_SHMLOCK: int
|
|
SQLITE_IOERR_SHMMAP: int
|
|
SQLITE_IOERR_SHMOPEN: int
|
|
SQLITE_IOERR_SHMSIZE: int
|
|
SQLITE_IOERR_SHORT_READ: int
|
|
SQLITE_IOERR_TRUNCATE: int
|
|
SQLITE_IOERR_UNLOCK: int
|
|
SQLITE_IOERR_VNODE: int
|
|
SQLITE_IOERR_WRITE: int
|
|
SQLITE_LOCKED: int
|
|
SQLITE_LOCKED_SHAREDCACHE: int
|
|
SQLITE_LOCKED_VTAB: int
|
|
SQLITE_MISMATCH: int
|
|
SQLITE_MISUSE: int
|
|
SQLITE_NOLFS: int
|
|
SQLITE_NOMEM: int
|
|
SQLITE_NOTADB: int
|
|
SQLITE_NOTFOUND: int
|
|
SQLITE_NOTICE: int
|
|
SQLITE_NOTICE_RECOVER_ROLLBACK: int
|
|
SQLITE_NOTICE_RECOVER_WAL: int
|
|
SQLITE_OK_LOAD_PERMANENTLY: int
|
|
SQLITE_OK_SYMLINK: int
|
|
SQLITE_PERM: int
|
|
SQLITE_PROTOCOL: int
|
|
SQLITE_RANGE: int
|
|
SQLITE_READONLY: int
|
|
SQLITE_READONLY_CANTINIT: int
|
|
SQLITE_READONLY_CANTLOCK: int
|
|
SQLITE_READONLY_DBMOVED: int
|
|
SQLITE_READONLY_DIRECTORY: int
|
|
SQLITE_READONLY_RECOVERY: int
|
|
SQLITE_READONLY_ROLLBACK: int
|
|
SQLITE_ROW: int
|
|
SQLITE_SCHEMA: int
|
|
SQLITE_TOOBIG: int
|
|
SQLITE_WARNING: int
|
|
SQLITE_WARNING_AUTOINDEX: int
|
|
|
|
if sys.version_info >= (3, 12):
|
|
LEGACY_TRANSACTION_CONTROL: int
|
|
SQLITE_DBCONFIG_DEFENSIVE: int
|
|
SQLITE_DBCONFIG_DQS_DDL: int
|
|
SQLITE_DBCONFIG_DQS_DML: int
|
|
SQLITE_DBCONFIG_ENABLE_FKEY: int
|
|
SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER: int
|
|
SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION: int
|
|
SQLITE_DBCONFIG_ENABLE_QPSG: int
|
|
SQLITE_DBCONFIG_ENABLE_TRIGGER: int
|
|
SQLITE_DBCONFIG_ENABLE_VIEW: int
|
|
SQLITE_DBCONFIG_LEGACY_ALTER_TABLE: int
|
|
SQLITE_DBCONFIG_LEGACY_FILE_FORMAT: int
|
|
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE: int
|
|
SQLITE_DBCONFIG_RESET_DATABASE: int
|
|
SQLITE_DBCONFIG_TRIGGER_EQP: int
|
|
SQLITE_DBCONFIG_TRUSTED_SCHEMA: int
|
|
SQLITE_DBCONFIG_WRITABLE_SCHEMA: int
|
|
|
|
# Can take or return anything depending on what's in the registry.
|
|
@overload
|
|
def adapt(obj: Any, proto: Any, /) -> Any: ...
|
|
@overload
|
|
def adapt(obj: Any, proto: Any, alt: _T, /) -> Any | _T: ...
|
|
def complete_statement(statement: str) -> bool: ...
|
|
|
|
if sys.version_info >= (3, 12):
|
|
@overload
|
|
def connect(
|
|
database: StrOrBytesPath,
|
|
timeout: float = 5.0,
|
|
detect_types: int = 0,
|
|
isolation_level: Literal["DEFERRED", "EXCLUSIVE", "IMMEDIATE"] | None = "DEFERRED",
|
|
check_same_thread: bool = True,
|
|
cached_statements: int = 128,
|
|
uri: bool = False,
|
|
*,
|
|
autocommit: bool = ...,
|
|
) -> Connection: ...
|
|
@overload
|
|
def connect(
|
|
database: StrOrBytesPath,
|
|
timeout: float,
|
|
detect_types: int,
|
|
isolation_level: Literal["DEFERRED", "EXCLUSIVE", "IMMEDIATE"] | None,
|
|
check_same_thread: bool,
|
|
factory: type[_ConnectionT],
|
|
cached_statements: int = 128,
|
|
uri: bool = False,
|
|
*,
|
|
autocommit: bool = ...,
|
|
) -> _ConnectionT: ...
|
|
@overload
|
|
def connect(
|
|
database: StrOrBytesPath,
|
|
timeout: float = 5.0,
|
|
detect_types: int = 0,
|
|
isolation_level: Literal["DEFERRED", "EXCLUSIVE", "IMMEDIATE"] | None = "DEFERRED",
|
|
check_same_thread: bool = True,
|
|
*,
|
|
factory: type[_ConnectionT],
|
|
cached_statements: int = 128,
|
|
uri: bool = False,
|
|
autocommit: bool = ...,
|
|
) -> _ConnectionT: ...
|
|
|
|
else:
|
|
@overload
|
|
def connect(
|
|
database: StrOrBytesPath,
|
|
timeout: float = 5.0,
|
|
detect_types: int = 0,
|
|
isolation_level: Literal["DEFERRED", "EXCLUSIVE", "IMMEDIATE"] | None = "DEFERRED",
|
|
check_same_thread: bool = True,
|
|
cached_statements: int = 128,
|
|
uri: bool = False,
|
|
) -> Connection: ...
|
|
@overload
|
|
def connect(
|
|
database: StrOrBytesPath,
|
|
timeout: float,
|
|
detect_types: int,
|
|
isolation_level: Literal["DEFERRED", "EXCLUSIVE", "IMMEDIATE"] | None,
|
|
check_same_thread: bool,
|
|
factory: type[_ConnectionT],
|
|
cached_statements: int = 128,
|
|
uri: bool = False,
|
|
) -> _ConnectionT: ...
|
|
@overload
|
|
def connect(
|
|
database: StrOrBytesPath,
|
|
timeout: float = 5.0,
|
|
detect_types: int = 0,
|
|
isolation_level: Literal["DEFERRED", "EXCLUSIVE", "IMMEDIATE"] | None = "DEFERRED",
|
|
check_same_thread: bool = True,
|
|
*,
|
|
factory: type[_ConnectionT],
|
|
cached_statements: int = 128,
|
|
uri: bool = False,
|
|
) -> _ConnectionT: ...
|
|
|
|
def enable_callback_tracebacks(enable: bool, /) -> None: ...
|
|
|
|
if sys.version_info < (3, 12):
|
|
# takes a pos-or-keyword argument because there is a C wrapper
|
|
def enable_shared_cache(enable: int) -> None: ...
|
|
|
|
if sys.version_info >= (3, 10):
|
|
def register_adapter(type: type[_T], adapter: _Adapter[_T], /) -> None: ...
|
|
def register_converter(typename: str, converter: _Converter, /) -> None: ...
|
|
|
|
else:
|
|
def register_adapter(type: type[_T], caster: _Adapter[_T], /) -> None: ...
|
|
def register_converter(name: str, converter: _Converter, /) -> None: ...
|
|
|
|
class _AggregateProtocol(Protocol):
|
|
def step(self, value: int, /) -> object: ...
|
|
def finalize(self) -> int: ...
|
|
|
|
class _SingleParamWindowAggregateClass(Protocol):
|
|
def step(self, param: Any, /) -> object: ...
|
|
def inverse(self, param: Any, /) -> object: ...
|
|
def value(self) -> _SqliteData: ...
|
|
def finalize(self) -> _SqliteData: ...
|
|
|
|
class _AnyParamWindowAggregateClass(Protocol):
|
|
def step(self, *args: Any) -> object: ...
|
|
def inverse(self, *args: Any) -> object: ...
|
|
def value(self) -> _SqliteData: ...
|
|
def finalize(self) -> _SqliteData: ...
|
|
|
|
class _WindowAggregateClass(Protocol):
|
|
step: Callable[..., object]
|
|
inverse: Callable[..., object]
|
|
def value(self) -> _SqliteData: ...
|
|
def finalize(self) -> _SqliteData: ...
|
|
|
|
class Connection:
|
|
@property
|
|
def DataError(self) -> type[sqlite3.DataError]: ...
|
|
@property
|
|
def DatabaseError(self) -> type[sqlite3.DatabaseError]: ...
|
|
@property
|
|
def Error(self) -> type[sqlite3.Error]: ...
|
|
@property
|
|
def IntegrityError(self) -> type[sqlite3.IntegrityError]: ...
|
|
@property
|
|
def InterfaceError(self) -> type[sqlite3.InterfaceError]: ...
|
|
@property
|
|
def InternalError(self) -> type[sqlite3.InternalError]: ...
|
|
@property
|
|
def NotSupportedError(self) -> type[sqlite3.NotSupportedError]: ...
|
|
@property
|
|
def OperationalError(self) -> type[sqlite3.OperationalError]: ...
|
|
@property
|
|
def ProgrammingError(self) -> type[sqlite3.ProgrammingError]: ...
|
|
@property
|
|
def Warning(self) -> type[sqlite3.Warning]: ...
|
|
@property
|
|
def in_transaction(self) -> bool: ...
|
|
isolation_level: str | None # one of '', 'DEFERRED', 'IMMEDIATE' or 'EXCLUSIVE'
|
|
@property
|
|
def total_changes(self) -> int: ...
|
|
if sys.version_info >= (3, 12):
|
|
@property
|
|
def autocommit(self) -> int: ...
|
|
@autocommit.setter
|
|
def autocommit(self, val: int) -> None: ...
|
|
row_factory: Any
|
|
text_factory: Any
|
|
if sys.version_info >= (3, 12):
|
|
def __init__(
|
|
self,
|
|
database: StrOrBytesPath,
|
|
timeout: float = ...,
|
|
detect_types: int = ...,
|
|
isolation_level: str | None = ...,
|
|
check_same_thread: bool = ...,
|
|
factory: type[Connection] | None = ...,
|
|
cached_statements: int = ...,
|
|
uri: bool = ...,
|
|
autocommit: bool = ...,
|
|
) -> None: ...
|
|
else:
|
|
def __init__(
|
|
self,
|
|
database: StrOrBytesPath,
|
|
timeout: float = ...,
|
|
detect_types: int = ...,
|
|
isolation_level: str | None = ...,
|
|
check_same_thread: bool = ...,
|
|
factory: type[Connection] | None = ...,
|
|
cached_statements: int = ...,
|
|
uri: bool = ...,
|
|
) -> None: ...
|
|
|
|
def close(self) -> None: ...
|
|
if sys.version_info >= (3, 11):
|
|
def blobopen(self, table: str, column: str, row: int, /, *, readonly: bool = False, name: str = "main") -> Blob: ...
|
|
|
|
def commit(self) -> None: ...
|
|
def create_aggregate(self, name: str, n_arg: int, aggregate_class: Callable[[], _AggregateProtocol]) -> None: ...
|
|
if sys.version_info >= (3, 11):
|
|
# num_params determines how many params will be passed to the aggregate class. We provide an overload
|
|
# for the case where num_params = 1, which is expected to be the common case.
|
|
@overload
|
|
def create_window_function(
|
|
self, name: str, num_params: Literal[1], aggregate_class: Callable[[], _SingleParamWindowAggregateClass] | None, /
|
|
) -> None: ...
|
|
# And for num_params = -1, which means the aggregate must accept any number of parameters.
|
|
@overload
|
|
def create_window_function(
|
|
self, name: str, num_params: Literal[-1], aggregate_class: Callable[[], _AnyParamWindowAggregateClass] | None, /
|
|
) -> None: ...
|
|
@overload
|
|
def create_window_function(
|
|
self, name: str, num_params: int, aggregate_class: Callable[[], _WindowAggregateClass] | None, /
|
|
) -> None: ...
|
|
|
|
def create_collation(self, name: str, callback: Callable[[str, str], int | SupportsIndex] | None, /) -> None: ...
|
|
def create_function(
|
|
self, name: str, narg: int, func: Callable[..., _SqliteData] | None, *, deterministic: bool = False
|
|
) -> None: ...
|
|
@overload
|
|
def cursor(self, factory: None = None) -> Cursor: ...
|
|
@overload
|
|
def cursor(self, factory: Callable[[Connection], _CursorT]) -> _CursorT: ...
|
|
def execute(self, sql: str, parameters: _Parameters = ..., /) -> Cursor: ...
|
|
def executemany(self, sql: str, parameters: Iterable[_Parameters], /) -> Cursor: ...
|
|
def executescript(self, sql_script: str, /) -> Cursor: ...
|
|
def interrupt(self) -> None: ...
|
|
def iterdump(self) -> Generator[str, None, None]: ...
|
|
def rollback(self) -> None: ...
|
|
def set_authorizer(
|
|
self, authorizer_callback: Callable[[int, str | None, str | None, str | None, str | None], int] | None
|
|
) -> None: ...
|
|
def set_progress_handler(self, progress_handler: Callable[[], int | None] | None, n: int) -> None: ...
|
|
def set_trace_callback(self, trace_callback: Callable[[str], object] | None) -> None: ...
|
|
# enable_load_extension and load_extension is not available on python distributions compiled
|
|
# without sqlite3 loadable extension support. see footnotes https://docs.python.org/3/library/sqlite3.html#f1
|
|
def enable_load_extension(self, enable: bool, /) -> None: ...
|
|
def load_extension(self, name: str, /) -> None: ...
|
|
def backup(
|
|
self,
|
|
target: Connection,
|
|
*,
|
|
pages: int = -1,
|
|
progress: Callable[[int, int, int], object] | None = None,
|
|
name: str = "main",
|
|
sleep: float = 0.25,
|
|
) -> None: ...
|
|
if sys.version_info >= (3, 11):
|
|
def setlimit(self, category: int, limit: int, /) -> int: ...
|
|
def getlimit(self, category: int, /) -> int: ...
|
|
def serialize(self, *, name: str = "main") -> bytes: ...
|
|
def deserialize(self, data: ReadableBuffer, /, *, name: str = "main") -> None: ...
|
|
if sys.version_info >= (3, 12):
|
|
def getconfig(self, op: int, /) -> bool: ...
|
|
def setconfig(self, op: int, enable: bool = True, /) -> bool: ...
|
|
|
|
def __call__(self, sql: str, /) -> _Statement: ...
|
|
def __enter__(self) -> Self: ...
|
|
def __exit__(
|
|
self, type: type[BaseException] | None, value: BaseException | None, traceback: TracebackType | None, /
|
|
) -> Literal[False]: ...
|
|
|
|
class Cursor(Iterator[Any]):
|
|
arraysize: int
|
|
@property
|
|
def connection(self) -> Connection: ...
|
|
# May be None, but using | Any instead to avoid slightly annoying false positives.
|
|
@property
|
|
def description(self) -> tuple[tuple[str, None, None, None, None, None, None], ...] | Any: ...
|
|
@property
|
|
def lastrowid(self) -> int | None: ...
|
|
row_factory: Callable[[Cursor, Row], object] | None
|
|
@property
|
|
def rowcount(self) -> int: ...
|
|
def __init__(self, cursor: Connection, /) -> None: ...
|
|
def close(self) -> None: ...
|
|
def execute(self, sql: str, parameters: _Parameters = (), /) -> Self: ...
|
|
def executemany(self, sql: str, seq_of_parameters: Iterable[_Parameters], /) -> Self: ...
|
|
def executescript(self, sql_script: str, /) -> Cursor: ...
|
|
def fetchall(self) -> list[Any]: ...
|
|
def fetchmany(self, size: int | None = 1) -> list[Any]: ...
|
|
# Returns either a row (as created by the row_factory) or None, but
|
|
# putting None in the return annotation causes annoying false positives.
|
|
def fetchone(self) -> Any: ...
|
|
def setinputsizes(self, sizes: Unused, /) -> None: ... # does nothing
|
|
def setoutputsize(self, size: Unused, column: Unused = None, /) -> None: ... # does nothing
|
|
def __iter__(self) -> Self: ...
|
|
def __next__(self) -> Any: ...
|
|
|
|
class Error(Exception):
|
|
if sys.version_info >= (3, 11):
|
|
sqlite_errorcode: int
|
|
sqlite_errorname: str
|
|
|
|
class DatabaseError(Error): ...
|
|
class DataError(DatabaseError): ...
|
|
class IntegrityError(DatabaseError): ...
|
|
class InterfaceError(Error): ...
|
|
class InternalError(DatabaseError): ...
|
|
class NotSupportedError(DatabaseError): ...
|
|
class OperationalError(DatabaseError): ...
|
|
|
|
if sys.version_info < (3, 10):
|
|
OptimizedUnicode = str
|
|
|
|
@final
|
|
class PrepareProtocol:
|
|
def __init__(self, *args: object, **kwargs: object) -> None: ...
|
|
|
|
class ProgrammingError(DatabaseError): ...
|
|
|
|
class Row:
|
|
def __init__(self, cursor: Cursor, data: tuple[Any, ...], /) -> None: ...
|
|
def keys(self) -> list[str]: ...
|
|
@overload
|
|
def __getitem__(self, key: int | str, /) -> Any: ...
|
|
@overload
|
|
def __getitem__(self, key: slice, /) -> tuple[Any, ...]: ...
|
|
def __hash__(self) -> int: ...
|
|
def __iter__(self) -> Iterator[Any]: ...
|
|
def __len__(self) -> int: ...
|
|
# These return NotImplemented for anything that is not a Row.
|
|
def __eq__(self, value: object, /) -> bool: ...
|
|
def __ge__(self, value: object, /) -> bool: ...
|
|
def __gt__(self, value: object, /) -> bool: ...
|
|
def __le__(self, value: object, /) -> bool: ...
|
|
def __lt__(self, value: object, /) -> bool: ...
|
|
def __ne__(self, value: object, /) -> bool: ...
|
|
|
|
@final
|
|
class _Statement: ...
|
|
|
|
class Warning(Exception): ...
|
|
|
|
if sys.version_info >= (3, 11):
|
|
@final
|
|
class Blob:
|
|
def close(self) -> None: ...
|
|
def read(self, length: int = -1, /) -> bytes: ...
|
|
def write(self, data: ReadableBuffer, /) -> None: ...
|
|
def tell(self) -> int: ...
|
|
# whence must be one of os.SEEK_SET, os.SEEK_CUR, os.SEEK_END
|
|
def seek(self, offset: int, origin: int = 0, /) -> None: ...
|
|
def __len__(self) -> int: ...
|
|
def __enter__(self) -> Self: ...
|
|
def __exit__(self, type: object, val: object, tb: object, /) -> Literal[False]: ...
|
|
def __getitem__(self, key: SupportsIndex | slice, /) -> int: ...
|
|
def __setitem__(self, key: SupportsIndex | slice, value: int, /) -> None: ...
|