replace pkg_resources with importlib.metadata #1445
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #952
Proposed Changes
One thing to note, the
if hasattr(all_entry_points, "select"):
check is slightly awkward. In python 3.8 and 3.9,entry_points()
returns a plain dict, but in python 3.10 and the backport (on 3.7) it returns aSelectableGroups
objects that inherits from dict. Usingselect()
on that object is slightly faster (~55ms) than using it through the dict interface. Since it inherits from dict,isinstance(x, dict)
wouldn't work, and sinceSelectableGroups
is not available in the 3.8/3.9 version,isinstance(x, SelectableGroups)
wouldn't work either. hence the check viahasattr
. This makes it perform equally fast across python versions.