summaryrefslogtreecommitdiff
path: root/setuptools/dist.py
diff options
context:
space:
mode:
authorAnderson Bravalheri <andersonbravalheri@gmail.com>2022-03-16 15:51:11 +0000
committerAnderson Bravalheri <andersonbravalheri@gmail.com>2022-03-16 15:51:11 +0000
commita70240af2c4eade71f2900cc0fba9369939b2cd4 (patch)
tree04c260eedf6599056bb0c37061b9ee1086b7cd96 /setuptools/dist.py
parent4d3b445d5a53bda3424aac273e80e51e92a08b2c (diff)
parent02f3821b9af91feadae2326b78a814ac2fbbe520 (diff)
downloadpython-setuptools-git-a70240af2c4eade71f2900cc0fba9369939b2cd4.tar.gz
Merge branch 'main' into experimental/support-pyproject
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r--setuptools/dist.py22
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):