up
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
import functools
|
||||
import itertools
|
||||
import operator
|
||||
import itertools
|
||||
|
||||
from jaraco.functools import pass_none
|
||||
from jaraco.text import yield_lines
|
||||
from more_itertools import consume
|
||||
|
||||
from .extern.jaraco.text import yield_lines
|
||||
from .extern.jaraco.functools import pass_none
|
||||
from ._importlib import metadata
|
||||
from ._itertools import ensure_unique
|
||||
from .errors import OptionError
|
||||
from .extern.more_itertools import consume
|
||||
|
||||
|
||||
def ensure_valid(ep):
|
||||
@@ -16,15 +14,7 @@ def ensure_valid(ep):
|
||||
Exercise one of the dynamic properties to trigger
|
||||
the pattern match.
|
||||
"""
|
||||
try:
|
||||
ep.extras
|
||||
except (AttributeError, AssertionError) as ex:
|
||||
# Why both? See https://github.com/python/importlib_metadata/issues/488
|
||||
msg = (
|
||||
f"Problems to parse {ep}.\nPlease ensure entry-point follows the spec: "
|
||||
"https://packaging.python.org/en/latest/specifications/entry-points/"
|
||||
)
|
||||
raise OptionError(msg) from ex
|
||||
ep.extras
|
||||
|
||||
|
||||
def load_group(value, group):
|
||||
@@ -56,8 +46,8 @@ def load(eps):
|
||||
Given a Distribution.entry_points, produce EntryPoints.
|
||||
"""
|
||||
groups = itertools.chain.from_iterable(
|
||||
load_group(value, group) for group, value in eps.items()
|
||||
)
|
||||
load_group(value, group)
|
||||
for group, value in eps.items())
|
||||
return validate(metadata.EntryPoints(groups))
|
||||
|
||||
|
||||
@@ -83,8 +73,14 @@ def render(eps: metadata.EntryPoints):
|
||||
by_group = operator.attrgetter('group')
|
||||
groups = itertools.groupby(sorted(eps, key=by_group), by_group)
|
||||
|
||||
return '\n'.join(f'[{group}]\n{render_items(items)}\n' for group, items in groups)
|
||||
return '\n'.join(
|
||||
f'[{group}]\n{render_items(items)}\n'
|
||||
for group, items in groups
|
||||
)
|
||||
|
||||
|
||||
def render_items(eps):
|
||||
return '\n'.join(f'{ep.name} = {ep.value}' for ep in sorted(eps))
|
||||
return '\n'.join(
|
||||
f'{ep.name} = {ep.value}'
|
||||
for ep in sorted(eps)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user