123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- 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]: ...
|