python / importlib_metadata

Library to access metadata for Python packages
https://importlib-metadata.readthedocs.io
Apache License 2.0
123 stars 80 forks source link

Remove compatibility shims for entry points. #405

Closed jaraco closed 1 year ago

jaraco commented 1 year ago
woutdenolf commented 1 year ago

Starts to be rather cumbersome to support python>=3.7

import sys

try:
    from importlib.metadata import entry_points
except ImportError:
    from importlib_metadata import entry_points

if sys.version_info >= (3,10):
    _entry_points = entry_points(group=namespace)
else:
    try:
        _entry_points = entry_points().get(namespace, [])
    except AttributeError:
        _entry_points = entry_points().select(group=namespace)
jaraco commented 1 year ago

That's one way to do it. Other options include:

woutdenolf commented 1 year ago

Thanks for the feedback!

Rely on importlib_metadata >= 3.6 for Python < 3.10

Many projects just need importlib.metadata so they have importlib-metadata; python_version < '3.8'. Once python 3.7 gets dropped it should become simpler.

Python 3.10 still supports entry_points().select(group=namespace) so using entry_points(group=namespace) is not mandatory.