From 504281ddf0b9c506524fce9be5183c9dea31256d Mon Sep 17 00:00:00 2001 From: Akuli Date: Mon, 29 Nov 2021 14:08:39 +0200 Subject: [PATCH 1/6] python 3.10 importlib stubtest fixes --- stdlib/importlib/abc.pyi | 8 ++++++-- stdlib/importlib/machinery.pyi | 30 +++++++++++++++++++++-------- tests/stubtest_allowlists/py310.txt | 7 +------ 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/stdlib/importlib/abc.pyi b/stdlib/importlib/abc.pyi index 2e18f3f899a2..6c894cffd5a5 100644 --- a/stdlib/importlib/abc.pyi +++ b/stdlib/importlib/abc.pyi @@ -85,8 +85,12 @@ if sys.version_info >= (3, 7): def open_resource(self, resource: StrOrBytesPath) -> IO[bytes]: ... @abstractmethod def resource_path(self, resource: StrOrBytesPath) -> str: ... - @abstractmethod - def is_resource(self, name: str) -> bool: ... + if sys.version_info >= (3, 10): + @abstractmethod + def is_resource(self, path: str) -> bool: ... + else: + @abstractmethod + def is_resource(self, name: str) -> bool: ... @abstractmethod def contents(self) -> Iterator[str]: ... diff --git a/stdlib/importlib/machinery.pyi b/stdlib/importlib/machinery.pyi index 432bec901161..547797c576de 100644 --- a/stdlib/importlib/machinery.pyi +++ b/stdlib/importlib/machinery.pyi @@ -41,10 +41,16 @@ class BuiltinImporter(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader) # Loader @staticmethod def module_repr(module: types.ModuleType) -> str: ... - @classmethod - def create_module(cls, spec: ModuleSpec) -> types.ModuleType | None: ... - @classmethod - def exec_module(cls, module: types.ModuleType) -> None: ... + if sys.version_info >= (3, 10): + @staticmethod + def create_module(spec: ModuleSpec) -> types.ModuleType | None: ... + @staticmethod + def exec_module( module: types.ModuleType) -> None: ... + else: + @classmethod + def create_module(cls, spec: ModuleSpec) -> types.ModuleType | None: ... + @classmethod + def exec_module(cls, module: types.ModuleType) -> None: ... class FrozenImporter(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader): # MetaPathFinder @@ -66,8 +72,12 @@ class FrozenImporter(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader): # Loader @staticmethod def module_repr(m: types.ModuleType) -> str: ... - @classmethod - def create_module(cls, spec: ModuleSpec) -> types.ModuleType | None: ... + if sys.version_info >= (3, 10): + @staticmethod + def create_module(spec: ModuleSpec) -> types.ModuleType | None: ... + else: + @classmethod + def create_module(cls, spec: ModuleSpec) -> types.ModuleType | None: ... @staticmethod def exec_module(module: types.ModuleType) -> None: ... @@ -80,8 +90,12 @@ class WindowsRegistryFinder(importlib.abc.MetaPathFinder): ) -> ModuleSpec | None: ... class PathFinder: - @classmethod - def invalidate_caches(cls) -> None: ... + if sys.version_info >= (3, 10): + @staticmethod + def invalidate_caches() -> None: ... + else: + @classmethod + def invalidate_caches(cls) -> None: ... @classmethod def find_spec( cls, fullname: str, path: Sequence[bytes | str] | None = ..., target: types.ModuleType | None = ... diff --git a/tests/stubtest_allowlists/py310.txt b/tests/stubtest_allowlists/py310.txt index 08cd87aa632d..1eb717aeea50 100644 --- a/tests/stubtest_allowlists/py310.txt +++ b/tests/stubtest_allowlists/py310.txt @@ -124,12 +124,7 @@ tkinter.EventType.__new__ _markupbase.ParserBase.error asyncio.proactor_events._ProactorReadPipeTransport.__init__ distutils.command.bdist_wininst -importlib.abc.ResourceReader.is_resource -importlib.machinery.BuiltinImporter.create_module -importlib.machinery.BuiltinImporter.exec_module -importlib.machinery.FrozenImporter.create_module -importlib.machinery.PathFinder.invalidate_caches -importlib.metadata.MetadataPathFinder.invalidate_caches +importlib.metadata.MetadataPathFinder.invalidate_caches # instance method, but first argument is named "cls", not "self" logging.Formatter.__init__ logging.LoggerAdapter.__init__ logging.PercentStyle.__init__ From 300e374b67c3a6a94fbb5ee8eb926bcf0942828c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 29 Nov 2021 12:09:00 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/importlib/machinery.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/importlib/machinery.pyi b/stdlib/importlib/machinery.pyi index 547797c576de..83f9724724af 100644 --- a/stdlib/importlib/machinery.pyi +++ b/stdlib/importlib/machinery.pyi @@ -45,7 +45,7 @@ class BuiltinImporter(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader) @staticmethod def create_module(spec: ModuleSpec) -> types.ModuleType | None: ... @staticmethod - def exec_module( module: types.ModuleType) -> None: ... + def exec_module(module: types.ModuleType) -> None: ... else: @classmethod def create_module(cls, spec: ModuleSpec) -> types.ModuleType | None: ... From 95fe2365301e81d9846114f16d1969f3e97b65b9 Mon Sep 17 00:00:00 2001 From: Akuli Date: Mon, 29 Nov 2021 14:10:38 +0200 Subject: [PATCH 3/6] import sys --- stdlib/importlib/machinery.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/importlib/machinery.pyi b/stdlib/importlib/machinery.pyi index 83f9724724af..209323f38cc7 100644 --- a/stdlib/importlib/machinery.pyi +++ b/stdlib/importlib/machinery.pyi @@ -1,3 +1,4 @@ +import sys import importlib.abc import types from typing import Any, Callable, Sequence From 1e890d7317bfb341c68193aa2e240ab93324808d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 29 Nov 2021 12:11:47 +0000 Subject: [PATCH 4/6] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/importlib/machinery.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/importlib/machinery.pyi b/stdlib/importlib/machinery.pyi index 209323f38cc7..aaa0f32d99a0 100644 --- a/stdlib/importlib/machinery.pyi +++ b/stdlib/importlib/machinery.pyi @@ -1,5 +1,5 @@ -import sys import importlib.abc +import sys import types from typing import Any, Callable, Sequence From 9a69c5a676cd3c31c3963302559f15138d17d3ca Mon Sep 17 00:00:00 2001 From: Akuli Date: Mon, 29 Nov 2021 16:09:47 +0200 Subject: [PATCH 5/6] fix the last thing --- stdlib/importlib/metadata.pyi | 2 ++ tests/stubtest_allowlists/py310.txt | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/importlib/metadata.pyi b/stdlib/importlib/metadata.pyi index 2c1041b76503..a777967401d2 100644 --- a/stdlib/importlib/metadata.pyi +++ b/stdlib/importlib/metadata.pyi @@ -72,6 +72,8 @@ if sys.version_info >= (3, 8): class MetadataPathFinder(DistributionFinder): @classmethod def find_distributions(cls, context: DistributionFinder.Context = ...) -> Iterable[PathDistribution]: ... + if sys.version_info >= (3, 10): + def invalidate_caches(cls) -> None: ... class PathDistribution(Distribution): def __init__(self, path: Path) -> None: ... def read_text(self, filename: StrPath) -> str: ... diff --git a/tests/stubtest_allowlists/py310.txt b/tests/stubtest_allowlists/py310.txt index 1eb717aeea50..db605c54bb31 100644 --- a/tests/stubtest_allowlists/py310.txt +++ b/tests/stubtest_allowlists/py310.txt @@ -124,7 +124,6 @@ tkinter.EventType.__new__ _markupbase.ParserBase.error asyncio.proactor_events._ProactorReadPipeTransport.__init__ distutils.command.bdist_wininst -importlib.metadata.MetadataPathFinder.invalidate_caches # instance method, but first argument is named "cls", not "self" logging.Formatter.__init__ logging.LoggerAdapter.__init__ logging.PercentStyle.__init__ From d78053ae1c38ad865a8a50d2f00ad8bae6538f22 Mon Sep 17 00:00:00 2001 From: Akuli Date: Mon, 29 Nov 2021 16:16:33 +0200 Subject: [PATCH 6/6] comment and ignore --- stdlib/importlib/metadata.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/importlib/metadata.pyi b/stdlib/importlib/metadata.pyi index a777967401d2..506b4a00b4e1 100644 --- a/stdlib/importlib/metadata.pyi +++ b/stdlib/importlib/metadata.pyi @@ -73,7 +73,8 @@ if sys.version_info >= (3, 8): @classmethod def find_distributions(cls, context: DistributionFinder.Context = ...) -> Iterable[PathDistribution]: ... if sys.version_info >= (3, 10): - def invalidate_caches(cls) -> None: ... + # Yes, this is an instance method that has argumend named "cls" + def invalidate_caches(cls) -> None: ... # type: ignore class PathDistribution(Distribution): def __init__(self, path: Path) -> None: ... def read_text(self, filename: StrPath) -> str: ...