From 405129fbe535d42613b577c9fe77cc94d80dbf77 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Fri, 12 Nov 2021 23:15:15 +0000 Subject: [PATCH 1/3] Add `@final` to `slice`/`memoryview`/`range` None of these classes can be subclassed at runtime. --- stdlib/builtins.pyi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 2393f3c9583b..b4890072a888 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -644,6 +644,7 @@ class bytearray(MutableSequence[int], ByteString): def __gt__(self, __x: bytes) -> bool: ... def __ge__(self, __x: bytes) -> bool: ... +@final class memoryview(Sized, Sequence[int]): format: str itemsize: int @@ -717,6 +718,7 @@ class bool(int): def __rxor__(self, __x: int) -> int: ... def __getnewargs__(self) -> tuple[int]: ... +@final class slice(object): start: Any step: Any @@ -937,6 +939,7 @@ class enumerate(Iterator[Tuple[int, _T]], Generic[_T]): if sys.version_info >= (3, 9): def __class_getitem__(cls, __item: Any) -> GenericAlias: ... +@final class range(Sequence[int]): start: int stop: int From 928f30adf2f95bcc1131758b451786ae0880ea90 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 13 Nov 2021 16:22:39 +0000 Subject: [PATCH 2/3] Fix ast import cycle --- stdlib/builtins.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index b4890072a888..7c607806075e 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -19,7 +19,7 @@ from _typeshed import ( SupportsRDivMod, SupportsWrite, ) -from ast import AST, mod +from _ast import AST from io import BufferedRandom, BufferedReader, BufferedWriter, FileIO, TextIOWrapper from types import CodeType, MappingProxyType, TracebackType from typing import ( @@ -1013,7 +1013,7 @@ if sys.version_info >= (3, 10): if sys.version_info >= (3, 8): def compile( - source: str | bytes | mod | AST, + source: str | bytes | AST, filename: str | bytes | _PathLike[Any], mode: str, flags: int = ..., @@ -1025,7 +1025,7 @@ if sys.version_info >= (3, 8): else: def compile( - source: str | bytes | mod | AST, + source: str | bytes | AST, filename: str | bytes | _PathLike[Any], mode: str, flags: int = ..., From 94b698262783b89bf1a45538637a1c8ac12d7c62 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 13 Nov 2021 16:27:10 +0000 Subject: [PATCH 3/3] Ugh isort --- stdlib/builtins.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 7c607806075e..324f5a5a0993 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -19,7 +19,6 @@ from _typeshed import ( SupportsRDivMod, SupportsWrite, ) -from _ast import AST from io import BufferedRandom, BufferedReader, BufferedWriter, FileIO, TextIOWrapper from types import CodeType, MappingProxyType, TracebackType from typing import ( @@ -62,6 +61,8 @@ from typing import ( ) from typing_extensions import Literal, SupportsIndex, TypeGuard, final +from _ast import AST + if sys.version_info >= (3, 9): from types import GenericAlias