diff options
| author | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-03-16 15:51:11 +0000 |
|---|---|---|
| committer | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-03-16 15:51:11 +0000 |
| commit | a70240af2c4eade71f2900cc0fba9369939b2cd4 (patch) | |
| tree | 04c260eedf6599056bb0c37061b9ee1086b7cd96 /setuptools/dist.py | |
| parent | 4d3b445d5a53bda3424aac273e80e51e92a08b2c (diff) | |
| parent | 02f3821b9af91feadae2326b78a814ac2fbbe520 (diff) | |
| download | python-setuptools-git-a70240af2c4eade71f2900cc0fba9369939b2cd4.tar.gz | |
Merge branch 'main' into experimental/support-pyproject
Diffstat (limited to 'setuptools/dist.py')
| -rw-r--r-- | setuptools/dist.py | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py index 8c995aca..1cdb7472 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -29,7 +29,8 @@ from distutils.util import rfc822_escape from setuptools.extern import packaging from setuptools.extern import ordered_set -from setuptools.extern.more_itertools import unique_everseen, always_iterable, partition +from setuptools.extern.more_itertools import unique_everseen, partition +from setuptools.extern import nspektr from ._importlib import metadata @@ -43,7 +44,7 @@ from setuptools.config import setupcfg, pyprojecttoml from setuptools.discovery import ConfigDiscovery import pkg_resources -from setuptools.extern.packaging import version, requirements +from setuptools.extern.packaging import version from . import _reqs from . import _entry_points @@ -892,25 +893,10 @@ class Distribution(_Distribution): Given an entry point, ensure that any declared extras for its distribution are installed. """ - reqs = { - req - for req in map(requirements.Requirement, always_iterable(ep.dist.requires)) - for extra in ep.extras - if extra in req.extras - } - missing = itertools.filterfalse(self._is_installed, reqs) - for req in missing: + for req in nspektr.missing(ep): # fetch_build_egg expects pkg_resources.Requirement self.fetch_build_egg(pkg_resources.Requirement(str(req))) - def _is_installed(self, req): - try: - dist = metadata.distribution(req.name) - except metadata.PackageNotFoundError: - return False - found_ver = packaging.version.Version(dist.version()) - return found_ver in req.specifier - def get_egg_cache_dir(self): egg_cache_dir = os.path.join(os.curdir, '.eggs') if not os.path.exists(egg_cache_dir): |
