11from _typeshed import SupportsKeysAndGetItem
2- from binascii import Incomplete
32from collections .abc import Generator , ItemsView , Iterable , KeysView , ValuesView
4- from typing import NoReturn , TypeVar
3+ from typing import NoReturn , TypeVar , overload
54from typing_extensions import Self , TypeAlias
65
76_KT = TypeVar ("_KT" )
@@ -13,26 +12,32 @@ class OrderedMultiDict(dict[_KT, _VT]):
1312 def addlist (self , k : _KT , v : Iterable [_VT ]) -> None : ...
1413 def clear (self ) -> None : ...
1514 def copy (self ) -> Self : ...
16- def counts (self ) -> OrderedMultiDict [ _KT , _VT ] : ...
15+ def counts (self ) -> Self : ...
1716 @classmethod
18- def fromkeys (cls , keys : _KT , default : _VT | None = None ) -> OrderedMultiDict [_KT , _VT ]: ... # type: ignore[override]
19- def get (self , k : _KT , default : _VT | None = None ) -> OrderedMultiDict [_KT , _VT ]: ... # type: ignore[override]
20- def getlist (self , k : _KT , default : _VT | None = ...) -> list [object ]: ...
21- def inverted (self ) -> OrderedMultiDict [_KT , _VT ]: ...
17+ def fromkeys (cls , keys : _KT , default : _VT | None = None ) -> Self : ... # type: ignore[override]
18+ @overload # type: ignore[override]
19+ def get (self , k : _KT , default : None = None ) -> _VT | None : ...
20+ @overload
21+ def get (self , k : _KT , default : _VT ) -> _VT : ...
22+ def getlist (self , k : _KT , default : list [_VT ] = ...) -> list [_VT ]: ...
23+ def inverted (self ) -> Self : ...
2224 def items (self , multi : bool = False ) -> list [tuple [_KT , _VT ]]: ... # type: ignore[override]
2325 def iteritems (self , multi : bool = False ) -> Generator [tuple [_KT , _VT ], None , None ]: ...
2426 def iterkeys (self , multi : bool = False ) -> Generator [_KT , None , None ]: ...
2527 def itervalues (self , multi : bool = False ) -> Generator [_VT , None , None ]: ...
2628 def keys (self , multi : bool = False ) -> list [_KT ]: ... # type: ignore[override]
27- def pop (self , k : _KT , default : _VT | None = ...) -> _VT : ... # type: ignore[override]
28- def popall (self , k : _KT , default : _VT | None = ...) -> list [_VT ]: ...
29- def poplast (self , k : _KT | None = ..., default : _VT | None = ...) -> _VT : ...
30- def setdefault (self , k : _KT , default : _VT | None = ...) -> _VT : ...
31- def sorted (self , key : _KT | None = None , reverse : bool = False ) -> OrderedMultiDict [_KT , _VT ]: ...
32- def sortedvalues (self , key : _KT | None = None , reverse : bool = False ) -> OrderedMultiDict [_KT , _VT ]: ...
29+ def pop (self , k : _KT , default : _VT = ...) -> _VT : ... # type: ignore[override]
30+ def popall (self , k : _KT , default : _VT = ...) -> list [_VT ]: ...
31+ def poplast (self , k : _KT = ..., default : _VT = ...) -> _VT : ...
32+ @overload # type: ignore[override]
33+ def setdefault (self , k : _KT , default : None = ...) -> _VT | None : ...
34+ @overload
35+ def setdefault (self , k : _KT , default : _VT ) -> _VT : ...
36+ def sorted (self , key : _KT | None = None , reverse : bool = False ) -> Self : ...
37+ def sortedvalues (self , key : _KT | None = None , reverse : bool = False ) -> Self : ...
3338 def todict (self , multi : bool = False ) -> dict [_KT , _VT ]: ...
34- def update (self , E : dict [_KT , _VT ] | Iterable [object ], ** F ) -> None : ... # type: ignore[override]
35- def update_extend (self , E : dict [_KT , _VT ] | Iterable [object ], ** F ) -> None : ...
39+ def update (self , E : SupportsKeysAndGetItem [_KT , _VT ] | Iterable [tuple [ _KT , _VT ] ], ** F ) -> None : ... # type: ignore[override]
40+ def update_extend (self , E : SupportsKeysAndGetItem [_KT , _VT ] | Iterable [tuple [ _KT , _VT ] ], ** F ) -> None : ...
3641 def values (self , multi : bool = False ) -> list [_VT ]: ... # type: ignore[override]
3742 def viewitems (self ) -> ItemsView [_KT , _VT ]: ...
3843 def viewkeys (self ) -> KeysView [_KT ]: ...
@@ -46,7 +51,7 @@ class FastIterOrderedMultiDict(OrderedMultiDict[_KT, _VT]): # undocumented
4651 def iterkeys (self , multi : bool = False ) -> Generator [_KT , None , None ]: ...
4752
4853class OneToOne (dict [_KT , _VT ]):
49- inv : dict [_VT , _KT ]
54+ inv : OneToOne [_VT , _KT ]
5055 def clear (self ) -> None : ...
5156 def copy (self ) -> Self : ...
5257 def pop (self , key : _KT , default : _VT | _T = ...) -> _VT | _T : ...
@@ -63,7 +68,9 @@ class ManyToMany(dict[_KT, frozenset[_VT]]):
6368 def __delitem__ (self , key : _KT ) -> None : ...
6469 def __eq__ (self , other ): ...
6570 def __getitem__ (self , key : _KT ): ...
66- def __init__ (self , items : Iterable [Incomplete ] | None = None ) -> None : ...
71+ def __init__ (
72+ self , items : ManyToMany [_KT , _VT ] | SupportsKeysAndGetItem [_KT , _VT ] | tuple [_KT , _VT ] | None = None
73+ ) -> None : ...
6774 def __iter__ (self ): ...
6875 def __len__ (self ): ...
6976 def __setitem__ (self , key : _KT , vals : Iterable [_VT ]) -> None : ...
@@ -81,10 +88,16 @@ class FrozenHashError(TypeError): ... # undocumented
8188
8289class FrozenDict (dict [_KT , _VT ]):
8390 def __copy__ (self ) -> Self : ...
84- def clear (self , * a , ** kw ) -> None : ...
8591 @classmethod
86- def fromkeys (cls , keys : Iterable [_KT ], value : _VT | None = None ) -> FrozenDict [_KT , _VT ]: ... # type: ignore[override]
92+ def fromkeys (cls , keys : Iterable [_KT ], value : _VT | None = None ) -> Self : ... # type: ignore[override]
93+ def updated (self , * a , ** kw ) -> Self : ...
94+ # Can't noqa because of https://github.com/plinss/flake8-noqa/pull/30
95+ # Signature conflicts with superclass, so let's just omit it
96+ # def __ior__(self, *a, **kw) -> NoReturn: ...
97+ def __setitem__ (self , * a , ** kw ) -> NoReturn : ...
98+ def __delitem__ (self , * a , ** kw ) -> NoReturn : ...
99+ def update (self , * a , ** kw ) -> NoReturn : ...
87100 def pop (self , * a , ** kw ) -> NoReturn : ...
88101 def popitem (self , * a , ** kw ) -> NoReturn : ...
89102 def setdefault (self , * a , ** kw ) -> NoReturn : ...
90- def updated (self , * a , ** kw ) -> Self : ...
103+ def clear (self , * a , ** kw ) -> NoReturn : ...
0 commit comments