@@ -161,7 +161,7 @@ def __eq__(self, other: Any) -> bool:
161161 return list_eq and self ._dict == other ._dict
162162 return list_eq
163163
164- def copy (self ):
164+ def copy (self ) -> Self :
165165 new_listmap = _ListMap (self )
166166 new_listmap ._dict = self ._dict .copy ()
167167 return new_listmap
@@ -173,7 +173,7 @@ def extend(self, __iterable: Iterable[_T]) -> None:
173173 self ._dict [key ] = idx + offset
174174 super ().extend (__iterable )
175175
176- def pop (self , key : Union [SupportsIndex , str ] = - 1 , default : Optional [_PT ] = None ) -> Union [_T , _PT ]:
176+ def pop (self , key : Union [SupportsIndex , str ] = - 1 , default : Optional [_T , _PT ] = None ) -> Optional [ Union [_T , _PT ] ]:
177177 if isinstance (key , int ):
178178 ret = list .pop (self , key )
179179 for str_key , idx in list (self ._dict .items ()):
@@ -279,7 +279,7 @@ def __contains__(self, item: Union[object, str]) -> bool:
279279
280280 # --- Dict-like interface ---
281281
282- def __delitem__ (self , key : Union [int , slice , str ]) -> None :
282+ def __delitem__ (self , key : Union [SupportsIndex , slice , str ]) -> None :
283283 if isinstance (key , (int , slice )):
284284 list .__delitem__ (self , key )
285285 for _key in key .indices (len (self )) if isinstance (key , slice ) else [key ]:
@@ -307,7 +307,13 @@ def items(self) -> ItemsView[str, _T]:
307307 d = {k : self [v ] for k , v in self ._dict .items ()}
308308 return d .items ()
309309
310- def get (self , __key : str , default : Optional [Any ] = None ) -> _T :
310+ @overload
311+ def get (self , __key : str ) -> Optional [_T ]: ...
312+
313+ @overload
314+ def get (self , __key : str , default : _PT ) -> Union [_T , _PT ]: ...
315+
316+ def get (self , __key : str , default = None ):
311317 if __key in self ._dict :
312318 return self [self ._dict [__key ]]
313319 return default
@@ -321,6 +327,6 @@ def reverse(self) -> None:
321327 self ._dict [key ] = len (self ) - 1 - idx
322328 list .reverse (self )
323329
324- def clear (self ):
330+ def clear (self ) -> None :
325331 self ._dict .clear ()
326332 list .clear (self )
0 commit comments