From d5a31028c64f7079f94458f913219491d0238a3e Mon Sep 17 00:00:00 2001 From: sobolevn Date: Tue, 25 Oct 2022 00:47:27 +0300 Subject: [PATCH 1/6] `Collection` is `Sized` --- stdlib/builtins.pyi | 2 +- stdlib/typing.pyi | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 3aa14e429117..94bf8a218a50 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -805,7 +805,7 @@ class bytearray(MutableSequence[int], ByteString): def __alloc__(self) -> int: ... @final -class memoryview(Sized, Sequence[int]): +class memoryview(Sequence[int]): @property def format(self) -> str: ... @property diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index d17a9d08f298..80ffe5ba50a2 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -452,8 +452,7 @@ class Container(Protocol[_T_co]): def __contains__(self, __x: object) -> bool: ... @runtime_checkable -class Collection(Iterable[_T_co], Container[_T_co], Protocol[_T_co]): - # Implement Sized (but don't have it as a base class). +class Collection(Sized, Iterable[_T_co], Container[_T_co], Protocol[_T_co]): @abstractmethod def __len__(self) -> int: ... From ffcb18bcdf7f300ed3d2d29801e08a02ba3d2bac Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Tue, 25 Oct 2022 02:35:50 +0300 Subject: [PATCH 2/6] Update typing.pyi --- stdlib/typing.pyi | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index 80ffe5ba50a2..d03a3eabbf9e 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -452,9 +452,7 @@ class Container(Protocol[_T_co]): def __contains__(self, __x: object) -> bool: ... @runtime_checkable -class Collection(Sized, Iterable[_T_co], Container[_T_co], Protocol[_T_co]): - @abstractmethod - def __len__(self) -> int: ... +class Collection(Sized, Iterable[_T_co], Container[_T_co], Protocol[_T_co]): ... class Sequence(Collection[_T_co], Reversible[_T_co], Generic[_T_co]): @overload From 52c7366d352c57f055a61c62a3ede3f768626003 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Tue, 25 Oct 2022 12:32:37 +0300 Subject: [PATCH 3/6] Add a test case --- test_cases/stdlib/typing/check_aliases.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 test_cases/stdlib/typing/check_aliases.py diff --git a/test_cases/stdlib/typing/check_aliases.py b/test_cases/stdlib/typing/check_aliases.py new file mode 100644 index 000000000000..decb6cc3c774 --- /dev/null +++ b/test_cases/stdlib/typing/check_aliases.py @@ -0,0 +1,4 @@ +from typing import Collection +from typing_extensions import assert_type + +assert_type(['a', {'b'}], list[Collection[str]]) From 0e9cab79c6cc6fe1504cf38c49ad8c775d7cfe11 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Tue, 25 Oct 2022 12:33:22 +0300 Subject: [PATCH 4/6] Add a comment --- test_cases/stdlib/typing/check_aliases.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test_cases/stdlib/typing/check_aliases.py b/test_cases/stdlib/typing/check_aliases.py index decb6cc3c774..0f3fc5d91bf0 100644 --- a/test_cases/stdlib/typing/check_aliases.py +++ b/test_cases/stdlib/typing/check_aliases.py @@ -1,4 +1,5 @@ from typing import Collection from typing_extensions import assert_type +# See https://github.com/python/typeshed/pull/8977 assert_type(['a', {'b'}], list[Collection[str]]) From 3533799cfb6a2fa80ba02c8db470037a19f35dc6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 09:35:04 +0000 Subject: [PATCH 5/6] [pre-commit.ci] auto fixes from pre-commit.com hooks --- test_cases/stdlib/typing/check_aliases.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_cases/stdlib/typing/check_aliases.py b/test_cases/stdlib/typing/check_aliases.py index 0f3fc5d91bf0..bd9c384a5674 100644 --- a/test_cases/stdlib/typing/check_aliases.py +++ b/test_cases/stdlib/typing/check_aliases.py @@ -2,4 +2,4 @@ from typing_extensions import assert_type # See https://github.com/python/typeshed/pull/8977 -assert_type(['a', {'b'}], list[Collection[str]]) +assert_type(["a", {"b"}], list[Collection[str]]) From 7fdb21b56cedddd38499b3a2978c13035acbafaf Mon Sep 17 00:00:00 2001 From: sobolevn Date: Tue, 25 Oct 2022 12:37:05 +0300 Subject: [PATCH 6/6] Revert adding a test case --- test_cases/stdlib/typing/check_aliases.py | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 test_cases/stdlib/typing/check_aliases.py diff --git a/test_cases/stdlib/typing/check_aliases.py b/test_cases/stdlib/typing/check_aliases.py deleted file mode 100644 index bd9c384a5674..000000000000 --- a/test_cases/stdlib/typing/check_aliases.py +++ /dev/null @@ -1,5 +0,0 @@ -from typing import Collection -from typing_extensions import assert_type - -# See https://github.com/python/typeshed/pull/8977 -assert_type(["a", {"b"}], list[Collection[str]])