aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/dist.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2017-07-13 21:27:43 -0400
committerJason R. Coombs <jaraco@jaraco.com>2017-07-13 21:27:43 -0400
commit3cf29ecb38271ae0512273d561adebd03df023b9 (patch)
tree1eed33514bf35c55927bdc6e9a0bd9ddc0506590 /setuptools/dist.py
parent295dbf3043da95165683991d71c187c875daa600 (diff)
downloadexternal_python_setuptools-3cf29ecb38271ae0512273d561adebd03df023b9.tar.gz
external_python_setuptools-3cf29ecb38271ae0512273d561adebd03df023b9.tar.bz2
external_python_setuptools-3cf29ecb38271ae0512273d561adebd03df023b9.zip
Extract _check_extra function
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r--setuptools/dist.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py
index cb887ea6..c7f6d371 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -8,6 +8,7 @@ import distutils.log
import distutils.core
import distutils.cmd
import distutils.dist
+import itertools
from collections import defaultdict
from distutils.errors import (DistutilsOptionError, DistutilsPlatformError,
DistutilsSetupError)
@@ -130,7 +131,16 @@ def check_nsp(dist, attr, value):
def check_extras(dist, attr, value):
"""Verify that extras_require mapping is valid"""
try:
- for k, v in value.items():
+ list(itertools.starmap(_check_extra, value.items()))
+ except (TypeError, ValueError, AttributeError):
+ raise DistutilsSetupError(
+ "'extras_require' must be a dictionary whose values are "
+ "strings or lists of strings containing valid project/version "
+ "requirement specifiers."
+ )
+
+
+def _check_extra(k, v):
if ':' in k:
k, m = k.split(':', 1)
if pkg_resources.invalid_marker(m):
@@ -142,12 +152,6 @@ def check_extras(dist, attr, value):
"environment markers, in {section!r}: '{req!s}'"
)
raise DistutilsSetupError(tmpl.format(section=k, req=r))
- except (TypeError, ValueError, AttributeError):
- raise DistutilsSetupError(
- "'extras_require' must be a dictionary whose values are "
- "strings or lists of strings containing valid project/version "
- "requirement specifiers."
- )
def assert_bool(dist, attr, value):