From: DongHun Kwak Date: Mon, 14 Jan 2019 01:43:11 +0000 (+0900) Subject: Imported Upstream version 40.2.0 X-Git-Tag: upstream/40.2.0^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89d64a897c72a83fd56dd39697d5f016907665f5;p=platform%2Fupstream%2Fpython-setuptools.git Imported Upstream version 40.2.0 --- diff --git a/CHANGES.rst b/CHANGES.rst index 5c52e94..3169e91 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,9 @@ +v40.2.0 +------- + +* #1466: Fix handling of Unicode arguments in PEP 517 backend + + vv40.1.1 -------- diff --git a/setup.cfg b/setup.cfg index 0304f6f..df02197 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 40.1.1 +current_version = 40.2.0 commit = True tag = True diff --git a/setup.py b/setup.py index e01043a..96dbbbb 100755 --- a/setup.py +++ b/setup.py @@ -89,7 +89,7 @@ def pypi_link(pkg_filename): setup_params = dict( name="setuptools", - version="40.1.1", + version="40.2.0", description=( "Easily download, build, install, upgrade, and uninstall " "Python packages" diff --git a/setuptools/build_meta.py b/setuptools/build_meta.py index 609ea1e..fb657a5 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 @@ -109,7 +122,7 @@ def get_requires_for_build_sdist(config_settings=None): 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 diff --git a/setuptools/tests/test_build_meta.py b/setuptools/tests/test_build_meta.py index b39b7b8..a7d1af6 100644 --- a/setuptools/tests/test_build_meta.py +++ b/setuptools/tests/test_build_meta.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + import os import pytest @@ -126,3 +128,13 @@ def test_prepare_metadata_for_build_wheel(build_backend): dist_info = build_backend.prepare_metadata_for_build_wheel(dist_dir) assert os.path.isfile(os.path.join(dist_dir, dist_info, 'METADATA')) + + +@pytest.mark.skipif('sys.version_info > (3,)') +def test_prepare_metadata_for_build_wheel_with_str(build_backend): + dist_dir = os.path.abspath(str('pip-dist-info')) + os.makedirs(dist_dir) + + dist_info = build_backend.prepare_metadata_for_build_wheel(dist_dir) + + assert os.path.isfile(os.path.join(dist_dir, dist_info, 'METADATA'))