Fix entrypoint bug in py3.8/3.9
This commit is contained in:
@@ -16,12 +16,21 @@ if sys.version_info >= (3,10,0):
|
||||
def _get_name_from_dist(dist: 'Distribution') -> str:
|
||||
return dist.name
|
||||
|
||||
elif sys.version_info >= (3,8,0):
|
||||
elif sys.version_info >= (3,8,0): # pragma: no cover
|
||||
from importlib import metadata
|
||||
|
||||
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', 'Distribution']]:
|
||||
eps = []
|
||||
dist_names = set()
|
||||
for dist in metadata.distributions():
|
||||
# Due to a bug in importlib.metadata's distributions iterator, in
|
||||
# some cases editable installs will cause duplicate dist entries.
|
||||
# Filter this out.
|
||||
dist_name = get_name_from_dist(dist)
|
||||
if dist_name in dist_names:
|
||||
continue
|
||||
dist_names.add(dist_name)
|
||||
|
||||
for ep in dist.entry_points:
|
||||
if ep.group == group_name:
|
||||
eps.append((ep, dist))
|
||||
@@ -30,7 +39,7 @@ elif sys.version_info >= (3,8,0):
|
||||
def _get_name_from_dist(dist: 'Distribution') -> str:
|
||||
return dist.metadata["Name"]
|
||||
|
||||
else:
|
||||
else: # pragma: no cover
|
||||
import pkg_resources # type: ignore
|
||||
|
||||
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', 'Distribution']]:
|
||||
|
||||
Reference in New Issue
Block a user