|
import json |
|
import os |
|
import sys |
|
from typing import ( |
|
TYPE_CHECKING, |
|
Any, |
|
Awaitable, |
|
Callable, |
|
Iterable, |
|
Mapping, |
|
Tuple, |
|
Union, |
|
) |
|
|
|
from multidict import CIMultiDict, CIMultiDictProxy, MultiDict, MultiDictProxy, istr |
|
from yarl import URL |
|
|
|
|
|
if sys.version_info >= (3, 8): |
|
from typing import Final as Final, Protocol as Protocol, TypedDict as TypedDict |
|
else: |
|
from typing_extensions import ( |
|
Final, |
|
Protocol as Protocol, |
|
TypedDict as TypedDict, |
|
) |
|
|
|
DEFAULT_JSON_ENCODER = json.dumps |
|
DEFAULT_JSON_DECODER = json.loads |
|
|
|
if TYPE_CHECKING: |
|
_CIMultiDict = CIMultiDict[str] |
|
_CIMultiDictProxy = CIMultiDictProxy[str] |
|
_MultiDict = MultiDict[str] |
|
_MultiDictProxy = MultiDictProxy[str] |
|
from http.cookies import BaseCookie, Morsel |
|
|
|
from .web import Request, StreamResponse |
|
else: |
|
_CIMultiDict = CIMultiDict |
|
_CIMultiDictProxy = CIMultiDictProxy |
|
_MultiDict = MultiDict |
|
_MultiDictProxy = MultiDictProxy |
|
|
|
Byteish = Union[bytes, bytearray, memoryview] |
|
JSONEncoder = Callable[[Any], str] |
|
JSONDecoder = Callable[[str], Any] |
|
LooseHeaders = Union[Mapping[Union[str, istr], str], _CIMultiDict, _CIMultiDictProxy] |
|
RawHeaders = Tuple[Tuple[bytes, bytes], ...] |
|
StrOrURL = Union[str, URL] |
|
|
|
LooseCookiesMappings = Mapping[str, Union[str, "BaseCookie[str]", "Morsel[Any]"]] |
|
LooseCookiesIterables = Iterable[ |
|
Tuple[str, Union[str, "BaseCookie[str]", "Morsel[Any]"]] |
|
] |
|
LooseCookies = Union[ |
|
LooseCookiesMappings, |
|
LooseCookiesIterables, |
|
"BaseCookie[str]", |
|
] |
|
|
|
Handler = Callable[["Request"], Awaitable["StreamResponse"]] |
|
|
|
PathLike = Union[str, "os.PathLike[str]"] |
|
|