Fix intransitive subtyping issue with SupportsGetItem (#8785)

See https://github.com/python/mypy/issues/13713 for details
This commit is contained in:
Shantanu
2022-09-23 13:25:15 -07:00
committed by GitHub
parent 4746f9b238
commit 2969922b68
2 changed files with 4 additions and 2 deletions

View File

@@ -7,7 +7,7 @@ import ctypes
import mmap
import pickle
import sys
from collections.abc import Awaitable, Callable, Container, Iterable, Set as AbstractSet
from collections.abc import Awaitable, Callable, Iterable, Set as AbstractSet
from os import PathLike
from types import FrameType, TracebackType
from typing import Any, AnyStr, Generic, Protocol, TypeVar, Union
@@ -118,7 +118,8 @@ class SupportsKeysAndGetItem(Protocol[_KT, _VT_co]):
def __getitem__(self, __key: _KT) -> _VT_co: ...
# stable
class SupportsGetItem(Container[_KT_contra], Protocol[_KT_contra, _VT_co]):
class SupportsGetItem(Protocol[_KT_contra, _VT_co]):
def __contains__(self, __x: object) -> bool: ...
def __getitem__(self, __key: _KT_contra) -> _VT_co: ...
# stable

View File

@@ -447,6 +447,7 @@ class AsyncGenerator(AsyncIterator[_T_co], Generic[_T_co, _T_contra]):
@runtime_checkable
class Container(Protocol[_T_co]):
# This is generic more on vibes than anything else
@abstractmethod
def __contains__(self, __x: object) -> bool: ...