Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 39 additions & 41 deletions src/frozendict/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
from __future__ import annotations

import sys

from typing import (
TypeVar,
overload,
Expand All @@ -21,10 +19,10 @@ except ImportError:
Tuple = tuple
Type = type

if sys.version_info >= (3, 11):
from typing import Self as SelfT
else:
SelfT = TypeVar("SelfT", bound=frozendict[K, V])
try:
from typing import Self
except ImportError:
Self = TypeVar("Self", bound=frozendict[K, V])

K = TypeVar("K")
V = TypeVar("V", covariant=True)
Expand All @@ -34,70 +32,70 @@ V2 = TypeVar("V2", covariant=True)
# noinspection PyPep8Naming
class frozendict(Mapping[K, V]):
@overload
def __new__(cls: Type[SelfT]) -> SelfT: ...
def __new__(cls: Type[Self]) -> Self: ...
@overload
def __new__(cls: Type[SelfT], **kwargs: V) -> frozendict[str, V]: ...
def __new__(cls: Type[Self], **kwargs: V) -> frozendict[str, V]: ...
@overload
def __new__(cls: Type[SelfT], mapping: Mapping[K, V]) -> SelfT: ...
def __new__(cls: Type[Self], mapping: Mapping[K, V]) -> Self: ...
@overload
def __new__(cls: Type[SelfT], iterable: Iterable[Tuple[K, V]]) -> SelfT: ...
def __new__(cls: Type[Self], iterable: Iterable[Tuple[K, V]]) -> Self: ...

def __getitem__(self: SelfT, key: K) -> V: ...
def __len__(self: SelfT) -> int: ...
def __iter__(self: SelfT) -> Iterator[K]: ...
def __hash__(self: SelfT) -> int: ...
def __reversed__(self: SelfT) -> Iterator[K]: ...
def copy(self: SelfT) -> SelfT: ...
def __copy__(self: SelfT) -> SelfT: ...
def __deepcopy__(self: SelfT) -> SelfT: ...
def delete(self: SelfT, key: K) -> SelfT: ...
def __getitem__(self: Self, key: K) -> V: ...
def __len__(self: Self) -> int: ...
def __iter__(self: Self) -> Iterator[K]: ...
def __hash__(self: Self) -> int: ...
def __reversed__(self: Self) -> Iterator[K]: ...
def copy(self: Self) -> Self: ...
def __copy__(self: Self) -> Self: ...
def __deepcopy__(self: Self) -> Self: ...
def delete(self: Self, key: K) -> Self: ...
@overload
def key(self: SelfT, index: int) -> K: ...
def key(self: Self, index: int) -> K: ...
@overload
def key(self: SelfT) -> K: ...
def key(self: Self) -> K: ...
@overload
def value(self: SelfT, index: int) -> V: ...
def value(self: Self, index: int) -> V: ...
@overload
def value(self: SelfT) -> V: ...
def value(self: Self) -> V: ...
@overload
def item(self: SelfT, index: int) -> Tuple[K, V]: ...
def item(self: Self, index: int) -> Tuple[K, V]: ...
@overload
def item(self: SelfT) -> Tuple[K, V]: ...
def item(self: Self) -> Tuple[K, V]: ...
@overload
def __or__(self: SelfT, other: Mapping[K, V]) -> SelfT: ...
def __or__(self: Self, other: Mapping[K, V]) -> Self: ...
@overload
def __or__(self: SelfT, other: Mapping[K2, V]) -> frozendict[Union[K, K2], V]: ...
def __or__(self: Self, other: Mapping[K2, V]) -> frozendict[Union[K, K2], V]: ...
@overload
def __or__(self: SelfT, other: Mapping[K, V2]) -> frozendict[K, Union[V, V2]]: ...
def __or__(self: Self, other: Mapping[K, V2]) -> frozendict[K, Union[V, V2]]: ...
@overload
def __or__(self: SelfT, other: Mapping[K2, V2]) -> frozendict[Union[K, K2], Union[V, V2]]: ...
def __or__(self: Self, other: Mapping[K2, V2]) -> frozendict[Union[K, K2], Union[V, V2]]: ...
@overload
def set(self: SelfT, key: K, value: V) -> SelfT: ...
def set(self: Self, key: K, value: V) -> Self: ...
@overload
def set(self: SelfT, key: K2, value: V) -> frozendict[Union[K, K2], V]: ...
def set(self: Self, key: K2, value: V) -> frozendict[Union[K, K2], V]: ...
@overload
def set(self: SelfT, key: K, value: V2) -> frozendict[K, Union[V, V2]]: ...
def set(self: Self, key: K, value: V2) -> frozendict[K, Union[V, V2]]: ...
@overload
def set(self: SelfT, key: K2, value: V2) -> frozendict[Union[K, K2], Union[V, V2]]: ...
def set(self: Self, key: K2, value: V2) -> frozendict[Union[K, K2], Union[V, V2]]: ...
@overload
def setdefault(self: SelfT, key: K) -> SelfT: ...
def setdefault(self: Self, key: K) -> Self: ...
@overload
def setdefault(self: SelfT, key: K2) -> SelfT: ...
def setdefault(self: Self, key: K2) -> Self: ...
@overload
def setdefault(self: SelfT, key: K, default: V) -> SelfT: ...
def setdefault(self: Self, key: K, default: V) -> Self: ...
@overload
def setdefault(self: SelfT, key: K2, default: V) -> frozendict[Union[K, K2], V]: ...
def setdefault(self: Self, key: K2, default: V) -> frozendict[Union[K, K2], V]: ...
@overload
def setdefault(self: SelfT, key: K, default: V2) -> frozendict[K, Union[V, V2]]: ...
def setdefault(self: Self, key: K, default: V2) -> frozendict[K, Union[V, V2]]: ...
@overload
def setdefault(self: SelfT, key: K2, default: V2) -> frozendict[Union[K, K2], Union[V, V2]]: ...
def setdefault(self: Self, key: K2, default: V2) -> frozendict[Union[K, K2], Union[V, V2]]: ...

@classmethod
def fromkeys(
cls: Type[SelfT],
cls: Type[Self],
seq: Iterable[K],
value: Optional[V] = None
) -> SelfT: ...
) -> Self: ...


FrozenOrderedDict = frozendict
Expand Down
Loading