diff options
Diffstat (limited to 'third_party/python/multidict/multidict/__init__.pyi')
-rw-r--r-- | third_party/python/multidict/multidict/__init__.pyi | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/third_party/python/multidict/multidict/__init__.pyi b/third_party/python/multidict/multidict/__init__.pyi new file mode 100644 index 0000000000..24ba63054b --- /dev/null +++ b/third_party/python/multidict/multidict/__init__.pyi @@ -0,0 +1,152 @@ +import abc +from typing import ( + Dict, + Generic, + Iterable, + Iterator, + List, + Mapping, + MutableMapping, + Tuple, + TypeVar, + Union, + overload, +) + +class istr(str): ... + +upstr = istr + +_S = Union[str, istr] + +_T = TypeVar("_T") + +_T_co = TypeVar("_T_co", covariant=True) + +_D = TypeVar("_D") + +class MultiMapping(Mapping[_S, _T_co]): + @overload + @abc.abstractmethod + def getall(self, key: _S) -> List[_T_co]: ... + @overload + @abc.abstractmethod + def getall(self, key: _S, default: _D) -> Union[List[_T_co], _D]: ... + @overload + @abc.abstractmethod + def getone(self, key: _S) -> _T_co: ... + @overload + @abc.abstractmethod + def getone(self, key: _S, default: _D) -> Union[_T_co, _D]: ... + +_Arg = Union[Mapping[_S, _T], Dict[_S, _T], MultiMapping[_T], Iterable[Tuple[_S, _T]]] + +class MutableMultiMapping(MultiMapping[_T], MutableMapping[_S, _T], Generic[_T]): + @abc.abstractmethod + def add(self, key: _S, value: _T) -> None: ... + @abc.abstractmethod + def extend(self, arg: _Arg[_T] = ..., **kwargs: _T) -> None: ... + @overload + @abc.abstractmethod + def popone(self, key: _S) -> _T: ... + @overload + @abc.abstractmethod + def popone(self, key: _S, default: _D) -> Union[_T, _D]: ... + @overload + @abc.abstractmethod + def popall(self, key: _S) -> List[_T]: ... + @overload + @abc.abstractmethod + def popall(self, key: _S, default: _D) -> Union[List[_T], _D]: ... + +class MultiDict(MutableMultiMapping[_T], Generic[_T]): + def __init__(self, arg: _Arg[_T] = ..., **kwargs: _T) -> None: ... + def copy(self) -> MultiDict[_T]: ... + def __getitem__(self, k: _S) -> _T: ... + def __setitem__(self, k: _S, v: _T) -> None: ... + def __delitem__(self, v: _S) -> None: ... + def __iter__(self) -> Iterator[_S]: ... + def __len__(self) -> int: ... + @overload + def getall(self, key: _S) -> List[_T]: ... + @overload + def getall(self, key: _S, default: _D) -> Union[List[_T], _D]: ... + @overload + def getone(self, key: _S) -> _T: ... + @overload + def getone(self, key: _S, default: _D) -> Union[_T, _D]: ... + def add(self, key: _S, value: _T) -> None: ... + def extend(self, arg: _Arg[_T] = ..., **kwargs: _T) -> None: ... + @overload + def popone(self, key: _S) -> _T: ... + @overload + def popone(self, key: _S, default: _D) -> Union[_T, _D]: ... + @overload + def popall(self, key: _S) -> List[_T]: ... + @overload + def popall(self, key: _S, default: _D) -> Union[List[_T], _D]: ... + +class CIMultiDict(MutableMultiMapping[_T], Generic[_T]): + def __init__(self, arg: _Arg[_T] = ..., **kwargs: _T) -> None: ... + def copy(self) -> CIMultiDict[_T]: ... + def __getitem__(self, k: _S) -> _T: ... + def __setitem__(self, k: _S, v: _T) -> None: ... + def __delitem__(self, v: _S) -> None: ... + def __iter__(self) -> Iterator[_S]: ... + def __len__(self) -> int: ... + @overload + def getall(self, key: _S) -> List[_T]: ... + @overload + def getall(self, key: _S, default: _D) -> Union[List[_T], _D]: ... + @overload + def getone(self, key: _S) -> _T: ... + @overload + def getone(self, key: _S, default: _D) -> Union[_T, _D]: ... + def add(self, key: _S, value: _T) -> None: ... + def extend(self, arg: _Arg[_T] = ..., **kwargs: _T) -> None: ... + @overload + def popone(self, key: _S) -> _T: ... + @overload + def popone(self, key: _S, default: _D) -> Union[_T, _D]: ... + @overload + def popall(self, key: _S) -> List[_T]: ... + @overload + def popall(self, key: _S, default: _D) -> Union[List[_T], _D]: ... + +class MultiDictProxy(MultiMapping[_T], Generic[_T]): + def __init__( + self, arg: Union[MultiMapping[_T], MutableMultiMapping[_T]] + ) -> None: ... + def copy(self) -> MultiDict[_T]: ... + def __getitem__(self, k: _S) -> _T: ... + def __iter__(self) -> Iterator[_S]: ... + def __len__(self) -> int: ... + @overload + def getall(self, key: _S) -> List[_T]: ... + @overload + def getall(self, key: _S, default: _D) -> Union[List[_T], _D]: ... + @overload + def getone(self, key: _S) -> _T: ... + @overload + def getone(self, key: _S, default: _D) -> Union[_T, _D]: ... + +class CIMultiDictProxy(MultiMapping[_T], Generic[_T]): + def __init__( + self, arg: Union[MultiMapping[_T], MutableMultiMapping[_T]] + ) -> None: ... + def __getitem__(self, k: _S) -> _T: ... + def __iter__(self) -> Iterator[_S]: ... + def __len__(self) -> int: ... + @overload + def getall(self, key: _S) -> List[_T]: ... + @overload + def getall(self, key: _S, default: _D) -> Union[List[_T], _D]: ... + @overload + def getone(self, key: _S) -> _T: ... + @overload + def getone(self, key: _S, default: _D) -> Union[_T, _D]: ... + def copy(self) -> CIMultiDict[_T]: ... + +def getversion( + md: Union[MultiDict[_T], CIMultiDict[_T], MultiDictProxy[_T], CIMultiDictProxy[_T]] +) -> int: ... |