summaryrefslogtreecommitdiff
path: root/setuptools/build_meta.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/build_meta.py')
-rw-r--r--setuptools/build_meta.py28
1 files changed, 21 insertions, 7 deletions
diff --git a/setuptools/build_meta.py b/setuptools/build_meta.py
index d0ac613b..5dc65e2d 100644
--- a/setuptools/build_meta.py
+++ b/setuptools/build_meta.py
@@ -37,8 +37,9 @@ import warnings
import setuptools
import distutils
+from ._reqs import parse_strings
+from .extern.more_itertools import always_iterable
-from pkg_resources import parse_requirements
__all__ = ['get_requires_for_build_sdist',
'get_requires_for_build_wheel',
@@ -56,7 +57,7 @@ class SetupRequirementsError(BaseException):
class Distribution(setuptools.dist.Distribution):
def fetch_build_eggs(self, specifiers):
- specifier_list = list(map(str, parse_requirements(specifiers)))
+ specifier_list = list(parse_strings(specifiers))
raise SetupRequirementsError(specifier_list)
@@ -126,11 +127,26 @@ def suppress_known_deprecation():
yield
-class _BuildMetaBackend(object):
+class _BuildMetaBackend:
- def _fix_config(self, config_settings):
+ @staticmethod
+ def _fix_config(config_settings):
+ """
+ Ensure config settings meet certain expectations.
+
+ >>> fc = _BuildMetaBackend._fix_config
+ >>> fc(None)
+ {'--global-option': []}
+ >>> fc({})
+ {'--global-option': []}
+ >>> fc({'--global-option': 'foo'})
+ {'--global-option': ['foo']}
+ >>> fc({'--global-option': ['foo']})
+ {'--global-option': ['foo']}
+ """
config_settings = config_settings or {}
- config_settings.setdefault('--global-option', [])
+ config_settings['--global-option'] = list(always_iterable(
+ config_settings.get('--global-option')))
return config_settings
def _get_build_requires(self, config_settings, requirements):
@@ -158,12 +174,10 @@ class _BuildMetaBackend(object):
exec(compile(code, __file__, 'exec'), locals())
def get_requires_for_build_wheel(self, config_settings=None):
- config_settings = self._fix_config(config_settings)
return self._get_build_requires(
config_settings, requirements=['wheel'])
def get_requires_for_build_sdist(self, config_settings=None):
- config_settings = self._fix_config(config_settings)
return self._get_build_requires(config_settings, requirements=[])
def prepare_metadata_for_build_wheel(self, metadata_directory,