From ec73e2ab8c890e8f44dc499c355779990f0cbdcc Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 20 Jan 2021 16:44:05 -0500 Subject: [PATCH 1/4] Prefer importlib_metadata for entrypoint parsing. --- twine/cli.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/twine/cli.py b/twine/cli.py index d8ea3aef..c374ce93 100644 --- a/twine/cli.py +++ b/twine/cli.py @@ -14,7 +14,6 @@ import argparse from typing import Any, Dict, List, Tuple -import pkg_resources import pkginfo import requests import requests_toolbelt @@ -23,15 +22,15 @@ import twine from twine import _installed +from twine import importlib_metadata args = argparse.Namespace() def _registered_commands( group: str = "twine.registered_commands", -) -> Dict[str, pkg_resources.EntryPoint]: - registered_commands = pkg_resources.iter_entry_points(group=group) - return {c.name: c for c in registered_commands} +) -> Dict[str, importlib_metadata.EntryPoint]: + return dict(importlib_metadata.entry_points()[group]) def list_dependencies_and_versions() -> List[Tuple[str, str]]: From 34273bc3cbb8ef53152d9608323ebbe277aed383 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 23 Jan 2021 15:07:13 -0500 Subject: [PATCH 2/4] Prefer dict comprehension for now. --- twine/cli.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/twine/cli.py b/twine/cli.py index c374ce93..5bd57c56 100644 --- a/twine/cli.py +++ b/twine/cli.py @@ -30,7 +30,9 @@ def _registered_commands( group: str = "twine.registered_commands", ) -> Dict[str, importlib_metadata.EntryPoint]: - return dict(importlib_metadata.entry_points()[group]) + # todo: with python/importlib_metadata#278: + # return importlib_metadata.entry_points()[group] + return {ep.name: ep for ep in importlib_metadata.entry_points()[group]} def list_dependencies_and_versions() -> List[Tuple[str, str]]: From 0d5aab41cb848dee9a7ccdb606835a3770892d89 Mon Sep 17 00:00:00 2001 From: Brian Rutledge Date: Thu, 28 Jan 2021 10:07:04 -0500 Subject: [PATCH 3/4] Workaround "implicit reexport disabled" --- twine/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/twine/__init__.py b/twine/__init__.py index 6d8c7ea8..d1ef5540 100644 --- a/twine/__init__.py +++ b/twine/__init__.py @@ -29,7 +29,9 @@ if sys.version_info[:2] >= (3, 8): from importlib import metadata as importlib_metadata else: - import importlib_metadata + # Using `as` to workaround "implicit reexport disabled" + # https://mypy.readthedocs.io/en/stable/config_file.html#confval-implicit_reexport + import importlib_metadata as importlib_metadata metadata = importlib_metadata.metadata("twine") From 9ffb61790e27c6d8a5d4f17c5ae060818049da35 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 29 Jan 2021 09:13:18 -0500 Subject: [PATCH 4/4] Add changelog. --- changelog/728.feature.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/728.feature.rst diff --git a/changelog/728.feature.rst b/changelog/728.feature.rst new file mode 100644 index 00000000..cd6dfb0e --- /dev/null +++ b/changelog/728.feature.rst @@ -0,0 +1 @@ +Prefer importlib.metadata for entry point handling.