You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
8.0 KiB
208 lines
8.0 KiB
from collections.abc import Callable |
|
from collections.abc import Iterable |
|
from collections.abc import Iterator |
|
from collections.abc import Mapping |
|
from typing import Any |
|
from typing import Generic |
|
from typing import Literal |
|
from typing import NoReturn |
|
from typing import overload |
|
from typing import TypeVar |
|
|
|
from .mixins import ( |
|
ImmutableDictMixin, |
|
ImmutableListMixin, |
|
ImmutableMultiDictMixin, |
|
UpdateDictMixin, |
|
) |
|
|
|
D = TypeVar("D") |
|
K = TypeVar("K") |
|
T = TypeVar("T") |
|
V = TypeVar("V") |
|
_CD = TypeVar("_CD", bound="CallbackDict") |
|
|
|
def is_immutable(self: object) -> NoReturn: ... |
|
def iter_multi_items( |
|
mapping: Mapping[K, V | Iterable[V]] | Iterable[tuple[K, V]] |
|
) -> Iterator[tuple[K, V]]: ... |
|
|
|
class ImmutableList(ImmutableListMixin[V]): ... |
|
|
|
class TypeConversionDict(dict[K, V]): |
|
@overload |
|
def get(self, key: K, default: None = ..., type: None = ...) -> V | None: ... |
|
@overload |
|
def get(self, key: K, default: D, type: None = ...) -> D | V: ... |
|
@overload |
|
def get(self, key: K, default: D, type: Callable[[V], T]) -> D | T: ... |
|
@overload |
|
def get(self, key: K, type: Callable[[V], T]) -> T | None: ... |
|
|
|
class ImmutableTypeConversionDict(ImmutableDictMixin[K, V], TypeConversionDict[K, V]): |
|
def copy(self) -> TypeConversionDict[K, V]: ... |
|
def __copy__(self) -> ImmutableTypeConversionDict: ... |
|
|
|
class MultiDict(TypeConversionDict[K, V]): |
|
def __init__( |
|
self, |
|
mapping: Mapping[K, Iterable[V] | V] | Iterable[tuple[K, V]] | None = None, |
|
) -> None: ... |
|
def __getitem__(self, item: K) -> V: ... |
|
def __setitem__(self, key: K, value: V) -> None: ... |
|
def add(self, key: K, value: V) -> None: ... |
|
@overload |
|
def getlist(self, key: K) -> list[V]: ... |
|
@overload |
|
def getlist(self, key: K, type: Callable[[V], T] = ...) -> list[T]: ... |
|
def setlist(self, key: K, new_list: Iterable[V]) -> None: ... |
|
def setdefault(self, key: K, default: V | None = None) -> V: ... |
|
def setlistdefault( |
|
self, key: K, default_list: Iterable[V] | None = None |
|
) -> list[V]: ... |
|
def items(self, multi: bool = False) -> Iterator[tuple[K, V]]: ... # type: ignore |
|
def lists(self) -> Iterator[tuple[K, list[V]]]: ... |
|
def values(self) -> Iterator[V]: ... # type: ignore |
|
def listvalues(self) -> Iterator[list[V]]: ... |
|
def copy(self) -> MultiDict[K, V]: ... |
|
def deepcopy(self, memo: Any = None) -> MultiDict[K, V]: ... |
|
@overload |
|
def to_dict(self) -> dict[K, V]: ... |
|
@overload |
|
def to_dict(self, flat: Literal[False]) -> dict[K, list[V]]: ... |
|
def update( # type: ignore |
|
self, mapping: Mapping[K, Iterable[V] | V] | Iterable[tuple[K, V]] |
|
) -> None: ... |
|
@overload |
|
def pop(self, key: K) -> V: ... |
|
@overload |
|
def pop(self, key: K, default: V | T = ...) -> V | T: ... |
|
def popitem(self) -> tuple[K, V]: ... |
|
def poplist(self, key: K) -> list[V]: ... |
|
def popitemlist(self) -> tuple[K, list[V]]: ... |
|
def __copy__(self) -> MultiDict[K, V]: ... |
|
def __deepcopy__(self, memo: Any) -> MultiDict[K, V]: ... |
|
|
|
class _omd_bucket(Generic[K, V]): |
|
prev: _omd_bucket | None |
|
next: _omd_bucket | None |
|
key: K |
|
value: V |
|
def __init__(self, omd: OrderedMultiDict, key: K, value: V) -> None: ... |
|
def unlink(self, omd: OrderedMultiDict) -> None: ... |
|
|
|
class OrderedMultiDict(MultiDict[K, V]): |
|
_first_bucket: _omd_bucket | None |
|
_last_bucket: _omd_bucket | None |
|
def __init__(self, mapping: Mapping[K, V] | None = None) -> None: ... |
|
def __eq__(self, other: object) -> bool: ... |
|
def __getitem__(self, key: K) -> V: ... |
|
def __setitem__(self, key: K, value: V) -> None: ... |
|
def __delitem__(self, key: K) -> None: ... |
|
def keys(self) -> Iterator[K]: ... # type: ignore |
|
def __iter__(self) -> Iterator[K]: ... |
|
def values(self) -> Iterator[V]: ... # type: ignore |
|
def items(self, multi: bool = False) -> Iterator[tuple[K, V]]: ... # type: ignore |
|
def lists(self) -> Iterator[tuple[K, list[V]]]: ... |
|
def listvalues(self) -> Iterator[list[V]]: ... |
|
def add(self, key: K, value: V) -> None: ... |
|
@overload |
|
def getlist(self, key: K) -> list[V]: ... |
|
@overload |
|
def getlist(self, key: K, type: Callable[[V], T] = ...) -> list[T]: ... |
|
def setlist(self, key: K, new_list: Iterable[V]) -> None: ... |
|
def setlistdefault( |
|
self, key: K, default_list: Iterable[V] | None = None |
|
) -> list[V]: ... |
|
def update( # type: ignore |
|
self, mapping: Mapping[K, V] | Iterable[tuple[K, V]] |
|
) -> None: ... |
|
def poplist(self, key: K) -> list[V]: ... |
|
@overload |
|
def pop(self, key: K) -> V: ... |
|
@overload |
|
def pop(self, key: K, default: V | T = ...) -> V | T: ... |
|
def popitem(self) -> tuple[K, V]: ... |
|
def popitemlist(self) -> tuple[K, list[V]]: ... |
|
|
|
class CombinedMultiDict(ImmutableMultiDictMixin[K, V], MultiDict[K, V]): # type: ignore |
|
dicts: list[MultiDict[K, V]] |
|
def __init__(self, dicts: Iterable[MultiDict[K, V]] | None) -> None: ... |
|
@classmethod |
|
def fromkeys(cls, keys: Any, value: Any = None) -> NoReturn: ... |
|
def __getitem__(self, key: K) -> V: ... |
|
@overload # type: ignore |
|
def get(self, key: K) -> V | None: ... |
|
@overload |
|
def get(self, key: K, default: V | T = ...) -> V | T: ... |
|
@overload |
|
def get( |
|
self, key: K, default: T | None = None, type: Callable[[V], T] = ... |
|
) -> T | None: ... |
|
@overload |
|
def getlist(self, key: K) -> list[V]: ... |
|
@overload |
|
def getlist(self, key: K, type: Callable[[V], T] = ...) -> list[T]: ... |
|
def _keys_impl(self) -> set[K]: ... |
|
def keys(self) -> set[K]: ... # type: ignore |
|
def __iter__(self) -> set[K]: ... # type: ignore |
|
def items(self, multi: bool = False) -> Iterator[tuple[K, V]]: ... # type: ignore |
|
def values(self) -> Iterator[V]: ... # type: ignore |
|
def lists(self) -> Iterator[tuple[K, list[V]]]: ... |
|
def listvalues(self) -> Iterator[list[V]]: ... |
|
def copy(self) -> MultiDict[K, V]: ... |
|
@overload |
|
def to_dict(self) -> dict[K, V]: ... |
|
@overload |
|
def to_dict(self, flat: Literal[False]) -> dict[K, list[V]]: ... |
|
def __contains__(self, key: K) -> bool: ... # type: ignore |
|
def has_key(self, key: K) -> bool: ... |
|
|
|
class ImmutableDict(ImmutableDictMixin[K, V], dict[K, V]): |
|
def copy(self) -> dict[K, V]: ... |
|
def __copy__(self) -> ImmutableDict[K, V]: ... |
|
|
|
class ImmutableMultiDict( # type: ignore |
|
ImmutableMultiDictMixin[K, V], MultiDict[K, V] |
|
): |
|
def copy(self) -> MultiDict[K, V]: ... |
|
def __copy__(self) -> ImmutableMultiDict[K, V]: ... |
|
|
|
class ImmutableOrderedMultiDict( # type: ignore |
|
ImmutableMultiDictMixin[K, V], OrderedMultiDict[K, V] |
|
): |
|
def _iter_hashitems(self) -> Iterator[tuple[int, tuple[K, V]]]: ... |
|
def copy(self) -> OrderedMultiDict[K, V]: ... |
|
def __copy__(self) -> ImmutableOrderedMultiDict[K, V]: ... |
|
|
|
class CallbackDict(UpdateDictMixin[K, V], dict[K, V]): |
|
def __init__( |
|
self, |
|
initial: Mapping[K, V] | Iterable[tuple[K, V]] | None = None, |
|
on_update: Callable[[_CD], None] | None = None, |
|
) -> None: ... |
|
|
|
class HeaderSet(set[str]): |
|
_headers: list[str] |
|
_set: set[str] |
|
on_update: Callable[[HeaderSet], None] | None |
|
def __init__( |
|
self, |
|
headers: Iterable[str] | None = None, |
|
on_update: Callable[[HeaderSet], None] | None = None, |
|
) -> None: ... |
|
def add(self, header: str) -> None: ... |
|
def remove(self, header: str) -> None: ... |
|
def update(self, iterable: Iterable[str]) -> None: ... # type: ignore |
|
def discard(self, header: str) -> None: ... |
|
def find(self, header: str) -> int: ... |
|
def index(self, header: str) -> int: ... |
|
def clear(self) -> None: ... |
|
def as_set(self, preserve_casing: bool = False) -> set[str]: ... |
|
def to_header(self) -> str: ... |
|
def __getitem__(self, idx: int) -> str: ... |
|
def __delitem__(self, idx: int) -> None: ... |
|
def __setitem__(self, idx: int, value: str) -> None: ... |
|
def __contains__(self, header: str) -> bool: ... # type: ignore |
|
def __len__(self) -> int: ... |
|
def __iter__(self) -> Iterator[str]: ...
|
|
|