mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 12:44:28 +08:00
support anything with .keys() and __getitem__ in dict.__init__ (#4470)
This commit is contained in:
@@ -10,6 +10,7 @@ from _typeshed import (
|
||||
OpenBinaryModeWriting,
|
||||
OpenTextMode,
|
||||
ReadableBuffer,
|
||||
SupportsKeysAndGetItem,
|
||||
SupportsWrite,
|
||||
)
|
||||
from abc import ABCMeta
|
||||
@@ -1001,7 +1002,7 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
|
||||
@overload
|
||||
def __init__(self, **kwargs: _VT) -> None: ...
|
||||
@overload
|
||||
def __init__(self, map: Mapping[_KT, _VT], **kwargs: _VT) -> None: ...
|
||||
def __init__(self, map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ...
|
||||
@overload
|
||||
def __init__(self, iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ...
|
||||
def __new__(cls: Type[_T1], *args: Any, **kwargs: Any) -> _T1: ...
|
||||
|
||||
@@ -15,9 +15,10 @@
|
||||
import array
|
||||
import mmap
|
||||
import sys
|
||||
from typing import AbstractSet, Container, Protocol, Text, Tuple, TypeVar, Union
|
||||
from typing import AbstractSet, Container, Iterable, Protocol, Text, Tuple, TypeVar, Union
|
||||
from typing_extensions import Literal
|
||||
|
||||
_KT = TypeVar("_KT")
|
||||
_KT_co = TypeVar("_KT_co", covariant=True)
|
||||
_KT_contra = TypeVar("_KT_contra", contravariant=True)
|
||||
_VT = TypeVar("_VT")
|
||||
@@ -30,6 +31,10 @@ _T_contra = TypeVar("_T_contra", contravariant=True)
|
||||
class SupportsItems(Protocol[_KT_co, _VT_co]):
|
||||
def items(self) -> AbstractSet[Tuple[_KT_co, _VT_co]]: ...
|
||||
|
||||
class SupportsKeysAndGetItem(Protocol[_KT, _VT_co]):
|
||||
def keys(self) -> Iterable[_KT]: ...
|
||||
def __getitem__(self, __k: _KT) -> _VT_co: ...
|
||||
|
||||
class SupportsGetItem(Container[_KT_contra], Protocol[_KT_contra, _VT_co]):
|
||||
def __getitem__(self, __k: _KT_contra) -> _VT_co: ...
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ from _typeshed import (
|
||||
OpenBinaryModeWriting,
|
||||
OpenTextMode,
|
||||
ReadableBuffer,
|
||||
SupportsKeysAndGetItem,
|
||||
SupportsWrite,
|
||||
)
|
||||
from abc import ABCMeta
|
||||
@@ -1001,7 +1002,7 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
|
||||
@overload
|
||||
def __init__(self, **kwargs: _VT) -> None: ...
|
||||
@overload
|
||||
def __init__(self, map: Mapping[_KT, _VT], **kwargs: _VT) -> None: ...
|
||||
def __init__(self, map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ...
|
||||
@overload
|
||||
def __init__(self, iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ...
|
||||
def __new__(cls: Type[_T1], *args: Any, **kwargs: Any) -> _T1: ...
|
||||
|
||||
Reference in New Issue
Block a user