mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 20:54:28 +08:00
sqlite3: add 3.11 additions (#7625)
- Blob from python/cpython#30680 (and anticipating that python/cpython#91550 will be merged) - Aggregate window functions from python/cpython#20903 - Serialize/deserialize from python/cpython#26728 - Limit setting from python/cpython#28463
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
import sys
|
||||
from _typeshed import Self, StrOrBytesPath
|
||||
from _typeshed import ReadableBuffer, Self, StrOrBytesPath
|
||||
from datetime import date, datetime, time
|
||||
from types import TracebackType
|
||||
from typing import Any, Callable, Generator, Iterable, Iterator, Protocol, TypeVar
|
||||
from typing import Any, Callable, Generator, Iterable, Iterator, Protocol, TypeVar, overload
|
||||
from typing_extensions import Literal, final
|
||||
|
||||
_T = TypeVar("_T")
|
||||
_SqliteData = str | bytes | int | float | None
|
||||
|
||||
paramstyle: str
|
||||
threadsafety: int
|
||||
@@ -125,9 +126,27 @@ if sys.version_info < (3, 8):
|
||||
def get(self, *args, **kwargs) -> None: ...
|
||||
|
||||
class _AggregateProtocol(Protocol):
|
||||
def step(self, value: int) -> None: ...
|
||||
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:
|
||||
DataError: Any
|
||||
DatabaseError: Any
|
||||
@@ -146,8 +165,28 @@ class Connection:
|
||||
total_changes: Any
|
||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||
def close(self) -> None: ...
|
||||
if sys.version_info >= (3, 11):
|
||||
def blobopen(self, __table: str, __column: str, __row: int, *, readonly: bool = ..., name: str = ...) -> 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: Any) -> None: ...
|
||||
if sys.version_info >= (3, 8):
|
||||
def create_function(self, name: str, narg: int, func: Any, *, deterministic: bool = ...) -> None: ...
|
||||
@@ -181,6 +220,11 @@ class Connection:
|
||||
name: str = ...,
|
||||
sleep: float = ...,
|
||||
) -> 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 = ...) -> bytes: ...
|
||||
def deserialize(self, __data: ReadableBuffer, *, name: str = ...) -> None: ...
|
||||
|
||||
def __call__(self, *args: Any, **kwargs: Any) -> Any: ...
|
||||
def __enter__(self: Self) -> Self: ...
|
||||
@@ -253,3 +297,15 @@ if sys.version_info < (3, 8):
|
||||
def __init__(self, *args, **kwargs): ...
|
||||
|
||||
class Warning(Exception): ...
|
||||
|
||||
if sys.version_info >= (3, 11):
|
||||
class Blob:
|
||||
def close(self) -> None: ...
|
||||
def read(self, __length: int = ...) -> bytes: ...
|
||||
def write(self, __data: bytes) -> None: ...
|
||||
def tell(self) -> int: ...
|
||||
# whence must be one of os.SEEK_SET, os.SEEK_CUR, os.SEEK_END
|
||||
def seek(self, __offset: int, __whence: int = ...) -> None: ...
|
||||
def __len__(self) -> int: ...
|
||||
def __enter__(self: Self) -> Self: ...
|
||||
def __exit__(self, __typ: object, __val: object, __tb: object) -> Literal[False]: ...
|
||||
|
||||
Reference in New Issue
Block a user