This commit is contained in:
lz_db
2026-10-16 22:48:30 +08:00
parent 190de72571
commit 0b36fd3383
3161 changed files with 12787 additions and 77274 deletions
@@ -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)
)