narrow signature of __contains__ for str-like classes (#2967)

Fixes #2937
This commit is contained in:
Jelle Zijlstra
2019-05-07 10:24:28 -04:00
committed by GitHub
parent 4990830c8f
commit bdb1de57f5
2 changed files with 16 additions and 8 deletions

View File

@@ -385,7 +385,8 @@ else:
def __ge__(self, x: unicode) -> bool: ...
def __len__(self) -> int: ...
def __contains__(self, s: object) -> bool: ...
# The argument type is incompatible with Sequence
def __contains__(self, s: Union[unicode, bytes]) -> bool: ... # type: ignore
def __iter__(self) -> Iterator[unicode]: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
@@ -520,7 +521,8 @@ class str(Sequence[str], _str_base):
def __add__(self, s: str) -> str: ...
else:
def __add__(self, s: AnyStr) -> AnyStr: ...
def __contains__(self, o: object) -> bool: ...
# Incompatible with Sequence.__contains__
def __contains__(self, o: Union[str, Text]) -> bool: ... # type: ignore
def __eq__(self, x: object) -> bool: ...
def __ge__(self, x: Text) -> bool: ...
def __getitem__(self, i: Union[int, slice]) -> str: ...
@@ -622,7 +624,8 @@ if sys.version_info >= (3,):
def __rmul__(self, n: int) -> bytes: ...
if sys.version_info >= (3, 5):
def __mod__(self, value: Any) -> bytes: ...
def __contains__(self, o: object) -> bool: ...
# Incompatible with Sequence.__contains__
def __contains__(self, o: Union[int, bytes]) -> bool: ... # type: ignore
def __eq__(self, x: object) -> bool: ...
def __ne__(self, x: object) -> bool: ...
def __lt__(self, x: bytes) -> bool: ...
@@ -754,7 +757,8 @@ class bytearray(MutableSequence[int], ByteString):
def __imul__(self, n: int) -> bytearray: ...
if sys.version_info >= (3, 5):
def __mod__(self, value: Any) -> bytes: ...
def __contains__(self, o: object) -> bool: ...
# Incompatible with Sequence.__contains__
def __contains__(self, o: Union[int, bytes]) -> bool: ... # type: ignore
def __eq__(self, x: object) -> bool: ...
def __ne__(self, x: object) -> bool: ...
def __lt__(self, x: bytes) -> bool: ...