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.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/setuptools/build_meta.py b/setuptools/build_meta.py
index 609ea1e5..f7f9bda2 100644
--- a/setuptools/build_meta.py
+++ b/setuptools/build_meta.py
@@ -61,6 +61,19 @@ class Distribution(setuptools.dist.Distribution):
distutils.core.Distribution = orig
+def _to_str(s):
+ """
+ Convert a filename to a string (on Python 2, explicitly
+ a byte string, not Unicode) as distutils checks for the
+ exact type str.
+ """
+ if sys.version_info[0] == 2 and not isinstance(s, str):
+ # Assume it's Unicode, as that's what the PEP says
+ # should be provided.
+ return s.encode(sys.getfilesystemencoding())
+ return s
+
+
def _run_setup(setup_script='setup.py'):
# Note that we can reuse our build directory between calls
# Correctness comes first, then optimization later
@@ -78,9 +91,8 @@ def _fix_config(config_settings):
return config_settings
-def _get_build_requires(config_settings):
+def _get_build_requires(config_settings, requirements):
config_settings = _fix_config(config_settings)
- requirements = ['setuptools', 'wheel']
sys.argv = sys.argv[:1] + ['egg_info'] + \
config_settings["--global-option"]
@@ -100,20 +112,20 @@ def _get_immediate_subdirectories(a_dir):
def get_requires_for_build_wheel(config_settings=None):
config_settings = _fix_config(config_settings)
- return _get_build_requires(config_settings)
+ return _get_build_requires(config_settings, requirements=['setuptools', 'wheel'])
def get_requires_for_build_sdist(config_settings=None):
config_settings = _fix_config(config_settings)
- return _get_build_requires(config_settings)
+ return _get_build_requires(config_settings, requirements=['setuptools'])
def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None):
- sys.argv = sys.argv[:1] + ['dist_info', '--egg-base', metadata_directory]
+ sys.argv = sys.argv[:1] + ['dist_info', '--egg-base', _to_str(metadata_directory)]
_run_setup()
-
+
dist_info_directory = metadata_directory
- while True:
+ while True:
dist_infos = [f for f in os.listdir(dist_info_directory)
if f.endswith('.dist-info')]