@@ -83,8 +83,14 @@ class UserDict(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
83
83
@overload
84
84
def fromkeys (cls , iterable : Iterable [_T ], value : _S ) -> UserDict [_T , _S ]: ...
85
85
if sys .version_info >= (3 , 9 ):
86
+ @overload
87
+ def __or__ (self , other : UserDict [_KT , _VT ] | dict [_KT , _VT ]) -> Self : ...
88
+ @overload
86
89
def __or__ (self , other : UserDict [_T1 , _T2 ] | dict [_T1 , _T2 ]) -> UserDict [_KT | _T1 , _VT | _T2 ]: ...
87
- def __ror__ (self , other : UserDict [_T1 , _T2 ] | dict [_T1 , _T2 ]) -> UserDict [_KT | _T1 , _VT | _T2 ]: ... # type: ignore[misc]
90
+ @overload # type: ignore[misc]
91
+ def __ror__ (self , other : UserDict [_KT , _VT ] | dict [_KT , _VT ]) -> Self : ...
92
+ @overload # type: ignore[misc]
93
+ def __ror__ (self , other : UserDict [_T1 , _T2 ] | dict [_T1 , _T2 ]) -> UserDict [_KT | _T1 , _VT | _T2 ]: ...
88
94
# UserDict.__ior__ should be kept roughly in line with MutableMapping.update()
89
95
@overload # type: ignore[misc]
90
96
def __ior__ (self , other : SupportsKeysAndGetItem [_KT , _VT ]) -> Self : ...
@@ -391,6 +397,15 @@ class defaultdict(dict[_KT, _VT], Generic[_KT, _VT]):
391
397
def __missing__ (self , __key : _KT ) -> _VT : ...
392
398
def __copy__ (self ) -> Self : ...
393
399
def copy (self ) -> Self : ...
400
+ if sys .version_info >= (3 , 9 ):
401
+ @overload
402
+ def __or__ (self , __value : Mapping [_KT , _VT ]) -> Self : ...
403
+ @overload
404
+ def __or__ (self , __value : Mapping [_T1 , _T2 ]) -> defaultdict [_KT | _T1 , _VT | _T2 ]: ...
405
+ @overload
406
+ def __ror__ (self , __value : Mapping [_KT , _VT ]) -> Self : ...
407
+ @overload
408
+ def __ror__ (self , __value : Mapping [_T1 , _T2 ]) -> defaultdict [_KT | _T1 , _VT | _T2 ]: ...
394
409
395
410
class ChainMap (MutableMapping [_KT , _VT ], Generic [_KT , _VT ]):
396
411
maps : list [MutableMapping [_KT , _VT ]]
@@ -425,7 +440,13 @@ class ChainMap(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
425
440
@overload
426
441
def fromkeys (cls , __iterable : Iterable [_T ], __value : _S ) -> ChainMap [_T , _S ]: ...
427
442
if sys .version_info >= (3 , 9 ):
443
+ @overload
444
+ def __or__ (self , other : Mapping [_KT , _VT ]) -> Self : ...
445
+ @overload
428
446
def __or__ (self , other : Mapping [_T1 , _T2 ]) -> ChainMap [_KT | _T1 , _VT | _T2 ]: ...
447
+ @overload
448
+ def __ror__ (self , other : Mapping [_KT , _VT ]) -> Self : ...
449
+ @overload
429
450
def __ror__ (self , other : Mapping [_T1 , _T2 ]) -> ChainMap [_KT | _T1 , _VT | _T2 ]: ...
430
451
# ChainMap.__ior__ should be kept roughly in line with MutableMapping.update()
431
452
@overload # type: ignore[misc]
0 commit comments