From d868dad76b2a8337d9e6b7c56e9b57599fdb1883 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sun, 3 Sep 2023 11:47:19 +0300 Subject: [PATCH] Update `importlib.metadata` to 3.12 (#10654) --- stdlib/importlib/metadata/__init__.pyi | 12 +++++++++++- tests/stubtest_allowlists/py312.txt | 1 - 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/stdlib/importlib/metadata/__init__.pyi b/stdlib/importlib/metadata/__init__.pyi index 0f8a6f56c..e52756544 100644 --- a/stdlib/importlib/metadata/__init__.pyi +++ b/stdlib/importlib/metadata/__init__.pyi @@ -88,6 +88,7 @@ if sys.version_info >= (3, 10): @property def groups(self) -> set[str]: ... +if sys.version_info >= (3, 10) and sys.version_info < (3, 12): class SelectableGroups(dict[str, EntryPoints]): # use as dict is deprecated since 3.10 @classmethod def load(cls, eps: Iterable[EntryPoint]) -> Self: ... @@ -195,6 +196,16 @@ def distributions( if sys.version_info >= (3, 10): def metadata(distribution_name: str) -> PackageMetadata: ... + +else: + def metadata(distribution_name: str) -> Message: ... + +if sys.version_info >= (3, 12): + def entry_points( + *, name: str = ..., value: str = ..., group: str = ..., module: str = ..., attr: str = ..., extras: list[str] = ... + ) -> EntryPoints: ... + +elif sys.version_info >= (3, 10): @overload def entry_points() -> SelectableGroups: ... # type: ignore[misc] @overload @@ -203,7 +214,6 @@ if sys.version_info >= (3, 10): ) -> EntryPoints: ... else: - def metadata(distribution_name: str) -> Message: ... def entry_points() -> dict[str, list[EntryPoint]]: ... def version(distribution_name: str) -> str: ... diff --git a/tests/stubtest_allowlists/py312.txt b/tests/stubtest_allowlists/py312.txt index abcff8467..6f70c9d8c 100644 --- a/tests/stubtest_allowlists/py312.txt +++ b/tests/stubtest_allowlists/py312.txt @@ -12,7 +12,6 @@ enum.property.member http.client.HTTPConnection.get_proxy_response_headers imaplib.IMAP4_SSL.__init__ importlib.metadata.PackageMetadata.get -importlib.metadata.SelectableGroups importlib.metadata._meta.PackageMetadata.get importlib.metadata._meta.SimplePath.__truediv__ importlib.metadata._meta.SimplePath.parent