From 000250da690bbcd42133dd1bed81480d61d6346a Mon Sep 17 00:00:00 2001 From: Thanos <111999343+Sachaa-Thanasius@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:46:52 -0400 Subject: [PATCH 1/5] Add missing `_optimize` parameter to SourceFileLoader method. This has been present since before Python 3.9, I think. --- stdlib/_frozen_importlib_external.pyi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stdlib/_frozen_importlib_external.pyi b/stdlib/_frozen_importlib_external.pyi index 463b4087f6b6..7b72043e790d 100644 --- a/stdlib/_frozen_importlib_external.pyi +++ b/stdlib/_frozen_importlib_external.pyi @@ -121,6 +121,13 @@ class FileLoader: class SourceFileLoader(importlib.abc.FileLoader, FileLoader, importlib.abc.SourceLoader, SourceLoader): # type: ignore[misc] # incompatible method arguments in base classes def set_data(self, path: str, data: ReadableBuffer, *, _mode: int = 0o666) -> None: ... def path_stats(self, path: str) -> Mapping[str, Any]: ... + def source_to_code( + self, + data: ReadableBuffer | str | _ast.Module | _ast.Expression | _ast.Interactive, + path: ReadableBuffer | StrPath = "", + *, + _optimize: int = -1, + ) -> types.CodeType: ... class SourcelessFileLoader(importlib.abc.FileLoader, FileLoader, _LoaderBasics): def get_code(self, fullname: str) -> types.CodeType | None: ... From a30cc9f31585f5093bec5105b4f6e9e64718d0bc Mon Sep 17 00:00:00 2001 From: Thanos <111999343+Sachaa-Thanasius@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:52:16 -0400 Subject: [PATCH 2/5] Add a `# type: ignore` to account for incompatible method override. --- stdlib/_frozen_importlib_external.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/_frozen_importlib_external.pyi b/stdlib/_frozen_importlib_external.pyi index 7b72043e790d..1625974917d1 100644 --- a/stdlib/_frozen_importlib_external.pyi +++ b/stdlib/_frozen_importlib_external.pyi @@ -127,7 +127,8 @@ class SourceFileLoader(importlib.abc.FileLoader, FileLoader, importlib.abc.Sourc path: ReadableBuffer | StrPath = "", *, _optimize: int = -1, - ) -> types.CodeType: ... + ) -> types.CodeType: # type: ignore[override] # incompatible with InspectLoader.source_to_code + ... class SourcelessFileLoader(importlib.abc.FileLoader, FileLoader, _LoaderBasics): def get_code(self, fullname: str) -> types.CodeType | None: ... From 9e9deb2cd0832cf278d1e8ecdada7916512a6c59 Mon Sep 17 00:00:00 2001 From: Thanos <111999343+Sachaa-Thanasius@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:54:07 -0400 Subject: [PATCH 3/5] Fix placement of `# type: ignore`. --- stdlib/_frozen_importlib_external.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/_frozen_importlib_external.pyi b/stdlib/_frozen_importlib_external.pyi index 1625974917d1..edcbe67d2485 100644 --- a/stdlib/_frozen_importlib_external.pyi +++ b/stdlib/_frozen_importlib_external.pyi @@ -121,13 +121,13 @@ class FileLoader: class SourceFileLoader(importlib.abc.FileLoader, FileLoader, importlib.abc.SourceLoader, SourceLoader): # type: ignore[misc] # incompatible method arguments in base classes def set_data(self, path: str, data: ReadableBuffer, *, _mode: int = 0o666) -> None: ... def path_stats(self, path: str) -> Mapping[str, Any]: ... - def source_to_code( + def source_to_code( # type: ignore[override] # incompatible with InspectLoader.source_to_code self, data: ReadableBuffer | str | _ast.Module | _ast.Expression | _ast.Interactive, path: ReadableBuffer | StrPath = "", *, _optimize: int = -1, - ) -> types.CodeType: # type: ignore[override] # incompatible with InspectLoader.source_to_code + ) -> types.CodeType: ... class SourcelessFileLoader(importlib.abc.FileLoader, FileLoader, _LoaderBasics): From 35b2d4a5f1512e87c058279641b719b7b92e4fb7 Mon Sep 17 00:00:00 2001 From: Thanos <111999343+Sachaa-Thanasius@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:56:37 -0400 Subject: [PATCH 4/5] Remove nonexistent default argument. --- stdlib/_frozen_importlib_external.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/_frozen_importlib_external.pyi b/stdlib/_frozen_importlib_external.pyi index edcbe67d2485..6c264bb5eaee 100644 --- a/stdlib/_frozen_importlib_external.pyi +++ b/stdlib/_frozen_importlib_external.pyi @@ -124,7 +124,7 @@ class SourceFileLoader(importlib.abc.FileLoader, FileLoader, importlib.abc.Sourc def source_to_code( # type: ignore[override] # incompatible with InspectLoader.source_to_code self, data: ReadableBuffer | str | _ast.Module | _ast.Expression | _ast.Interactive, - path: ReadableBuffer | StrPath = "", + path: ReadableBuffer | StrPath, *, _optimize: int = -1, ) -> types.CodeType: From 689adbee65404d04cb115123360f564cc82d91dd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 24 Apr 2025 19:57:51 +0000 Subject: [PATCH 5/5] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/_frozen_importlib_external.pyi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stdlib/_frozen_importlib_external.pyi b/stdlib/_frozen_importlib_external.pyi index 6c264bb5eaee..edad50a8d858 100644 --- a/stdlib/_frozen_importlib_external.pyi +++ b/stdlib/_frozen_importlib_external.pyi @@ -127,8 +127,7 @@ class SourceFileLoader(importlib.abc.FileLoader, FileLoader, importlib.abc.Sourc path: ReadableBuffer | StrPath, *, _optimize: int = -1, - ) -> types.CodeType: - ... + ) -> types.CodeType: ... class SourcelessFileLoader(importlib.abc.FileLoader, FileLoader, _LoaderBasics): def get_code(self, fullname: str) -> types.CodeType | None: ...