Skip to content

Commit 7e95990

Browse files
jaracobhrutledge
andauthored
Prefer importlib_metadata for entrypoint parsing. (#728)
* Prefer importlib_metadata for entrypoint parsing. * Prefer dict comprehension for now. * Workaround "implicit reexport disabled" * Add changelog. Co-authored-by: Brian Rutledge <brian@bhrutledge.com>
1 parent 5343855 commit 7e95990

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

changelog/728.feature.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Prefer importlib.metadata for entry point handling.

twine/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
if sys.version_info[:2] >= (3, 8):
3030
from importlib import metadata as importlib_metadata
3131
else:
32-
import importlib_metadata
32+
# Using `as` to workaround "implicit reexport disabled"
33+
# https://mypy.readthedocs.io/en/stable/config_file.html#confval-implicit_reexport
34+
import importlib_metadata as importlib_metadata
3335

3436

3537
metadata = importlib_metadata.metadata("twine")

twine/cli.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import argparse
1515
from typing import Any, Dict, List, Tuple
1616

17-
import pkg_resources
1817
import pkginfo
1918
import requests
2019
import requests_toolbelt
@@ -23,15 +22,17 @@
2322

2423
import twine
2524
from twine import _installed
25+
from twine import importlib_metadata
2626

2727
args = argparse.Namespace()
2828

2929

3030
def _registered_commands(
3131
group: str = "twine.registered_commands",
32-
) -> Dict[str, pkg_resources.EntryPoint]:
33-
registered_commands = pkg_resources.iter_entry_points(group=group)
34-
return {c.name: c for c in registered_commands}
32+
) -> Dict[str, importlib_metadata.EntryPoint]:
33+
# todo: with python/importlib_metadata#278:
34+
# return importlib_metadata.entry_points()[group]
35+
return {ep.name: ep for ep in importlib_metadata.entry_points()[group]}
3536

3637

3738
def list_dependencies_and_versions() -> List[Tuple[str, str]]:

0 commit comments

Comments
 (0)