|
- import sys
- from typing import Any
- from typing import Hashable
- from typing import Iterable
- from typing import Iterator
- from typing import NoReturn
- from typing import Optional
- from typing import Tuple
- from typing import TypeVar
- from typing import Union
- from typing import overload
-
- if sys.version_info >= (3, 8):
- from typing import Protocol
- from typing import TYPE_CHECKING
- else:
- from typing_extensions import Protocol
- from typing_extensions import TYPE_CHECKING
-
- if TYPE_CHECKING:
- from ._map import Map
-
- HT = TypeVar('HT', bound=Hashable)
- KT = TypeVar('KT', bound=Hashable)
- KT_co = TypeVar('KT_co', covariant=True)
- MM = TypeVar('MM', bound='MapMutation[Any, Any]')
- T = TypeVar('T')
- VT = TypeVar('VT')
- VT_co = TypeVar('VT_co', covariant=True)
-
-
- class MapKeys(Protocol[KT_co]):
- def __len__(self) -> int: ...
- def __iter__(self) -> Iterator[KT_co]: ...
-
-
- class MapValues(Protocol[VT_co]):
- def __len__(self) -> int: ...
- def __iter__(self) -> Iterator[VT_co]: ...
-
-
- class MapItems(Protocol[KT_co, VT_co]):
- def __len__(self) -> int: ...
- def __iter__(self) -> Iterator[Tuple[KT_co, VT_co]]: ...
-
-
- class IterableItems(Protocol[KT_co, VT_co]):
- def items(self) -> Iterable[Tuple[KT_co, VT_co]]: ...
-
-
- class MapMutation(Protocol[KT, VT]):
- def set(self, key: KT, val: VT) -> None: ...
- def __enter__(self: MM) -> MM: ...
- def __exit__(self, *exc: Any) -> bool: ...
- def __iter__(self) -> NoReturn: ...
- def __delitem__(self, key: KT) -> None: ...
- def __setitem__(self, key: KT, val: VT) -> None: ...
- @overload
- def pop(self, __key: KT) -> VT: ...
- @overload
- def pop(self, __key: KT, __default: T) -> Union[VT, T]: ...
- @overload
- def get(self, key: KT) -> Optional[VT]: ...
- @overload
- def get(self, key: KT, default: Union[VT, T]) -> Union[VT, T]: ...
- def __getitem__(self, key: KT) -> VT: ...
- def __contains__(self, key: object) -> bool: ...
-
- @overload
- def update(
- self,
- __col: Union[IterableItems[KT, VT], Iterable[Tuple[KT, VT]]]
- ) -> None: ...
-
- @overload
- def update(
- self: 'MapMutation[Union[HT, str], Any]',
- __col: Union[IterableItems[KT, VT], Iterable[Tuple[KT, VT]]],
- **kw: VT
- ) -> None: ...
- @overload
- def update(self: 'MapMutation[Union[HT, str], Any]', **kw: VT) -> None: ...
- def finish(self) -> 'Map[KT, VT]': ...
- def __len__(self) -> int: ...
- def __eq__(self, other: Any) -> bool: ...
|