diff options
Diffstat (limited to 'setuptools/build_meta.py')
-rw-r--r-- | setuptools/build_meta.py | 28 |
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, |