Skip to content

Commit

Permalink
Merge pull request #2768 from pypa/bugfix/2765-suppress-removed-entry…
Browse files Browse the repository at this point in the history
…-points

In Distribution.finalize_options, suppress known removed entry points
  • Loading branch information
jaraco committed Sep 6, 2021
2 parents 47b7246 + 6041353 commit d8172e5
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
1 change: 1 addition & 0 deletions changelog.d/2765.patch.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
In Distribution.finalize_options, suppress known removed entry points to avoid issues with older Setuptools.
20 changes: 18 additions & 2 deletions setuptools/dist.py
Original file line number Diff line number Diff line change
Expand Up @@ -817,10 +817,26 @@ def finalize_options(self):
def by_order(hook):
return getattr(hook, 'order', 0)

eps = map(lambda e: e.load(), pkg_resources.iter_entry_points(group))
for ep in sorted(eps, key=by_order):
defined = pkg_resources.iter_entry_points(group)
filtered = itertools.filterfalse(self._removed, defined)
loaded = map(lambda e: e.load(), filtered)
for ep in sorted(loaded, key=by_order):
ep(self)

@staticmethod
def _removed(ep):
"""
When removing an entry point, if metadata is loaded
from an older version of Setuptools, that removed
entry point will attempt to be loaded and will fail.
See #2765 for more details.
"""
removed = {
# removed 2021-09-05
'2to3_doctests',
}
return ep.name in removed

def _finalize_setup_keywords(self):
for ep in pkg_resources.iter_entry_points('distutils.setup_keywords'):
value = getattr(self, ep.name, None)
Expand Down

0 comments on commit d8172e5

Please sign in to comment.