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.
110 lines
4.1 KiB
110 lines
4.1 KiB
9 months ago
|
from collections.abc import Callable
|
||
|
from collections.abc import Iterable
|
||
|
from collections.abc import Iterator
|
||
|
from collections.abc import Mapping
|
||
|
from typing import Literal
|
||
|
from typing import NoReturn
|
||
|
from typing import overload
|
||
|
from typing import TypeVar
|
||
|
|
||
|
from _typeshed import SupportsKeysAndGetItem
|
||
|
from _typeshed.wsgi import WSGIEnvironment
|
||
|
|
||
|
from .mixins import ImmutableHeadersMixin
|
||
|
|
||
|
D = TypeVar("D")
|
||
|
T = TypeVar("T")
|
||
|
|
||
|
class Headers(dict[str, str]):
|
||
|
_list: list[tuple[str, str]]
|
||
|
def __init__(
|
||
|
self,
|
||
|
defaults: Mapping[str, str | Iterable[str]]
|
||
|
| Iterable[tuple[str, str]]
|
||
|
| None = None,
|
||
|
) -> None: ...
|
||
|
@overload
|
||
|
def __getitem__(self, key: str) -> str: ...
|
||
|
@overload
|
||
|
def __getitem__(self, key: int) -> tuple[str, str]: ...
|
||
|
@overload
|
||
|
def __getitem__(self, key: slice) -> Headers: ...
|
||
|
@overload
|
||
|
def __getitem__(self, key: str, _get_mode: Literal[True] = ...) -> str: ...
|
||
|
def __eq__(self, other: object) -> bool: ...
|
||
|
@overload # type: ignore
|
||
|
def get(self, key: str, default: str) -> str: ...
|
||
|
@overload
|
||
|
def get(self, key: str, default: str | None = None) -> str | None: ...
|
||
|
@overload
|
||
|
def get(
|
||
|
self, key: str, default: T | None = None, type: Callable[[str], T] = ...
|
||
|
) -> T | None: ...
|
||
|
@overload
|
||
|
def getlist(self, key: str) -> list[str]: ...
|
||
|
@overload
|
||
|
def getlist(self, key: str, type: Callable[[str], T]) -> list[T]: ...
|
||
|
def get_all(self, name: str) -> list[str]: ...
|
||
|
def items( # type: ignore
|
||
|
self, lower: bool = False
|
||
|
) -> Iterator[tuple[str, str]]: ...
|
||
|
def keys(self, lower: bool = False) -> Iterator[str]: ... # type: ignore
|
||
|
def values(self) -> Iterator[str]: ... # type: ignore
|
||
|
def extend(
|
||
|
self,
|
||
|
*args: Mapping[str, str | Iterable[str]] | Iterable[tuple[str, str]],
|
||
|
**kwargs: str | Iterable[str],
|
||
|
) -> None: ...
|
||
|
@overload
|
||
|
def __delitem__(self, key: str | int | slice) -> None: ...
|
||
|
@overload
|
||
|
def __delitem__(self, key: str, _index_operation: Literal[False]) -> None: ...
|
||
|
def remove(self, key: str) -> None: ...
|
||
|
@overload # type: ignore
|
||
|
def pop(self, key: str, default: str | None = None) -> str: ...
|
||
|
@overload
|
||
|
def pop(
|
||
|
self, key: int | None = None, default: tuple[str, str] | None = None
|
||
|
) -> tuple[str, str]: ...
|
||
|
def popitem(self) -> tuple[str, str]: ...
|
||
|
def __contains__(self, key: str) -> bool: ... # type: ignore
|
||
|
def has_key(self, key: str) -> bool: ...
|
||
|
def __iter__(self) -> Iterator[tuple[str, str]]: ... # type: ignore
|
||
|
def add(self, _key: str, _value: str, **kw: str) -> None: ...
|
||
|
def _validate_value(self, value: str) -> None: ...
|
||
|
def add_header(self, _key: str, _value: str, **_kw: str) -> None: ...
|
||
|
def clear(self) -> None: ...
|
||
|
def set(self, _key: str, _value: str, **kw: str) -> None: ...
|
||
|
def setlist(self, key: str, values: Iterable[str]) -> None: ...
|
||
|
def setdefault(self, key: str, default: str) -> str: ...
|
||
|
def setlistdefault(self, key: str, default: Iterable[str]) -> None: ...
|
||
|
@overload
|
||
|
def __setitem__(self, key: str, value: str) -> None: ...
|
||
|
@overload
|
||
|
def __setitem__(self, key: int, value: tuple[str, str]) -> None: ...
|
||
|
@overload
|
||
|
def __setitem__(self, key: slice, value: Iterable[tuple[str, str]]) -> None: ...
|
||
|
@overload
|
||
|
def update(
|
||
|
self, __m: SupportsKeysAndGetItem[str, str], **kwargs: str | Iterable[str]
|
||
|
) -> None: ...
|
||
|
@overload
|
||
|
def update(
|
||
|
self, __m: Iterable[tuple[str, str]], **kwargs: str | Iterable[str]
|
||
|
) -> None: ...
|
||
|
@overload
|
||
|
def update(self, **kwargs: str | Iterable[str]) -> None: ...
|
||
|
def to_wsgi_list(self) -> list[tuple[str, str]]: ...
|
||
|
def copy(self) -> Headers: ...
|
||
|
def __copy__(self) -> Headers: ...
|
||
|
|
||
|
class EnvironHeaders(ImmutableHeadersMixin, Headers):
|
||
|
environ: WSGIEnvironment
|
||
|
def __init__(self, environ: WSGIEnvironment) -> None: ...
|
||
|
def __eq__(self, other: object) -> bool: ...
|
||
|
def __getitem__( # type: ignore
|
||
|
self, key: str, _get_mode: Literal[False] = False
|
||
|
) -> str: ...
|
||
|
def __iter__(self) -> Iterator[tuple[str, str]]: ... # type: ignore
|
||
|
def copy(self) -> NoReturn: ...
|