Skip to content

Commit

Permalink
Merge pull request #3421 from benoit-pierre/pr/fix_60.8.0+_performance
Browse files Browse the repository at this point in the history
Drop support for installing dependencies when resolving distutils commands
  • Loading branch information
benoit-pierre authored Jul 3, 2022
2 parents 641cb89 + dc64dfd commit d680efc
Show file tree
Hide file tree
Showing 16 changed files with 79 additions and 289 deletions.
4 changes: 4 additions & 0 deletions changelog.d/3421.breaking.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Drop setuptools' support for installing an entrypoint extra requirements at load time:
- the functionality has been broken since v60.8.0.
- the mechanism to do so is deprecated (`fetch_build_eggs`).
- that use case (e.g. a custom command class entrypoint) is covered by making sure the necessary build requirements are declared.
1 change: 0 additions & 1 deletion setuptools/_vendor/nspektr-0.3.0.dist-info/INSTALLER

This file was deleted.

19 changes: 0 additions & 19 deletions setuptools/_vendor/nspektr-0.3.0.dist-info/LICENSE

This file was deleted.

57 changes: 0 additions & 57 deletions setuptools/_vendor/nspektr-0.3.0.dist-info/METADATA

This file was deleted.

11 changes: 0 additions & 11 deletions setuptools/_vendor/nspektr-0.3.0.dist-info/RECORD

This file was deleted.

Empty file.
5 changes: 0 additions & 5 deletions setuptools/_vendor/nspektr-0.3.0.dist-info/WHEEL

This file was deleted.

1 change: 0 additions & 1 deletion setuptools/_vendor/nspektr-0.3.0.dist-info/top_level.txt

This file was deleted.

145 changes: 0 additions & 145 deletions setuptools/_vendor/nspektr/__init__.py

This file was deleted.

21 changes: 0 additions & 21 deletions setuptools/_vendor/nspektr/_compat.py

This file was deleted.

1 change: 0 additions & 1 deletion setuptools/_vendor/vendored.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ more_itertools==8.8.0
jaraco.text==3.7.0
importlib_resources==5.4.0
importlib_metadata==4.11.1
nspektr==0.3.0
# required for importlib_metadata on older Pythons
typing_extensions==4.0.1
# required for importlib_resources and _metadata on older Pythons
Expand Down
1 change: 0 additions & 1 deletion setuptools/command/egg_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,6 @@ def run(self):
self.mkpath(self.egg_info)
os.utime(self.egg_info, None)
for ep in metadata.entry_points(group='egg_info.writers'):
self.distribution._install_dependencies(ep)
writer = ep.load()
writer(self, ep.name, os.path.join(self.egg_info, ep.name))

Expand Down
12 changes: 0 additions & 12 deletions setuptools/dist.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
from setuptools.extern import packaging
from setuptools.extern import ordered_set
from setuptools.extern.more_itertools import unique_everseen, partition
from setuptools.extern import nspektr

from ._importlib import metadata

Expand Down Expand Up @@ -918,18 +917,8 @@ def _finalize_setup_keywords(self):
for ep in metadata.entry_points(group='distutils.setup_keywords'):
value = getattr(self, ep.name, None)
if value is not None:
self._install_dependencies(ep)
ep.load()(self, ep.name, value)

def _install_dependencies(self, ep):
"""
Given an entry point, ensure that any declared extras for
its distribution are installed.
"""
for req in nspektr.missing(ep):
# fetch_build_egg expects pkg_resources.Requirement
self.fetch_build_egg(pkg_resources.Requirement(str(req)))

def get_egg_cache_dir(self):
egg_cache_dir = os.path.join(os.curdir, '.eggs')
if not os.path.exists(egg_cache_dir):
Expand Down Expand Up @@ -962,7 +951,6 @@ def get_command_class(self, command):

eps = metadata.entry_points(group='distutils.commands', name=command)
for ep in eps:
self._install_dependencies(ep)
self.cmdclass[command] = cmdclass = ep.load()
return cmdclass
else:
Expand Down
2 changes: 1 addition & 1 deletion setuptools/extern/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,6 @@ def install(self):

names = (
'packaging', 'pyparsing', 'ordered_set', 'more_itertools', 'importlib_metadata',
'zipp', 'importlib_resources', 'jaraco', 'typing_extensions', 'nspektr', 'tomli',
'zipp', 'importlib_resources', 'jaraco', 'typing_extensions', 'tomli',
)
VendorImporter(__name__, names, 'setuptools._vendor').install()
Loading

0 comments on commit d680efc

Please sign in to comment.