Imported Upstream version 36.1.1 upstream/36.1.1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Mon, 14 Jan 2019 01:33:10 +0000 (10:33 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Mon, 14 Jan 2019 01:33:10 +0000 (10:33 +0900)
CHANGES.rst
bootstrap.py
pkg_resources/py31compat.py
setup.cfg
setup.py
setuptools/command/easy_install.py
setuptools/sandbox.py
setuptools/tests/files.py
setuptools/tests/test_manifest.py

index 1bae3f2587a83c6069ce4beaed52ceddbbced601..487accd918dfb5dfe11f3759ba9a8156c6d1a35d 100644 (file)
@@ -1,3 +1,10 @@
+v36.1.1
+-------
+
+* #1083: Correct ``py31compat.makedirs`` to correctly honor
+  ``exist_ok`` parameter.
+* #1083: Also use makedirs compatibility throughout setuptools.
+
 v36.1.0
 -------
 
index f3a12c0729d78d3076098fdf66a58873212d29b5..8c7d7fc3e636f6d695ecfb9dda1f89658b2e7341 100644 (file)
@@ -5,6 +5,8 @@ environment by creating a minimal egg-info directory and then invoking the
 egg-info command to flesh out the egg-info directory.
 """
 
+from __future__ import unicode_literals
+
 import os
 import sys
 import textwrap
index 28120cac74eff7de807c38da8fce991d097138b6..331a51bb0fb208f4049d3a404e55f5fef517b63c 100644 (file)
@@ -3,15 +3,20 @@ import errno
 import sys
 
 
-PY32 = sys.version_info >= (3, 2)
-
-
 def _makedirs_31(path, exist_ok=False):
     try:
         os.makedirs(path)
     except OSError as exc:
-        if exc.errno != errno.EEXIST:
+        if not exist_ok or exc.errno != errno.EEXIST:
             raise
 
 
-makedirs = os.makedirs if PY32 else _makedirs_31
+# rely on compatibility behavior until mode considerations
+#  and exists_ok considerations are disentangled.
+# See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663
+needs_makedirs = (
+    sys.version_info < (3, 2, 5) or
+    (3, 3) <= sys.version_info < (3, 3, 6) or
+    (3, 4) <= sys.version_info < (3, 4, 1)
+)
+makedirs = _makedirs_31 if needs_makedirs else os.makedirs
index 10eed8456f55e3fd502a1fb3df3dee211ad1ddd6..9046b41b0d72f5ec98b0b0cc2c7a3545355e2e42 100755 (executable)
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 36.1.0
+current_version = 36.1.1
 commit = True
 tag = True
 
index c051fc1d22cfe5df86fe63c86c0db6591577901f..42a4c069c21fcdb6c9f9e30ee9652fa236e677d7 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -89,7 +89,7 @@ def pypi_link(pkg_filename):
 
 setup_params = dict(
     name="setuptools",
-    version="36.1.0",
+    version="36.1.1",
     description="Easily download, build, install, upgrade, and uninstall "
         "Python packages",
     author="Python Packaging Authority",
index e319f77cab028ca7265426dac2f001d19120d14d..8fba7b4115cd6415fef436fd41740ab8c200356f 100755 (executable)
@@ -59,7 +59,7 @@ from pkg_resources import (
     Distribution, PathMetadata, EggMetadata, WorkingSet, DistributionNotFound,
     VersionConflict, DEVELOP_DIST,
 )
-import pkg_resources
+import pkg_resources.py31compat
 
 # Turn on PEP440Warnings
 warnings.filterwarnings("default", category=pkg_resources.PEP440Warning)
@@ -544,8 +544,7 @@ class easy_install(Command):
             if ok_exists:
                 os.unlink(ok_file)
             dirname = os.path.dirname(ok_file)
-            if not os.path.exists(dirname):
-                os.makedirs(dirname)
+            pkg_resources.py31compat.makedirs(dirname, exist_ok=True)
             f = open(pth_file, 'w')
         except (OSError, IOError):
             self.cant_write_to_target()
index f99c13c400da7d48c00a9a2b15fe84ab0fecb576..1d981f497f6bfce95fb9ce0defdb15d2c14b236d 100755 (executable)
@@ -12,7 +12,7 @@ import textwrap
 from setuptools.extern import six
 from setuptools.extern.six.moves import builtins, map
 
-import pkg_resources
+import pkg_resources.py31compat
 
 if sys.platform.startswith('java'):
     import org.python.modules.posix.PosixModule as _os
@@ -26,6 +26,7 @@ _open = open
 from distutils.errors import DistutilsError
 from pkg_resources import working_set
 
+
 __all__ = [
     "AbstractSandbox", "DirectorySandbox", "SandboxViolation", "run_setup",
 ]
@@ -73,8 +74,7 @@ def override_temp(replacement):
     """
     Monkey-patch tempfile.tempdir with replacement, ensuring it exists
     """
-    if not os.path.isdir(replacement):
-        os.makedirs(replacement)
+    pkg_resources.py31compat.makedirs(replacement, exist_ok=True)
 
     saved = tempfile.tempdir
 
index 4364241baab4ac933df9254ace17b2ee3bfc6125..98de9fc341312eb78eaa9250309c828fa089d53e 100644 (file)
@@ -1,6 +1,9 @@
 import os
 
 
+import pkg_resources.py31compat
+
+
 def build_files(file_defs, prefix=""):
     """
     Build a set of files/directories, as described by the file_defs dictionary.
@@ -24,8 +27,7 @@ def build_files(file_defs, prefix=""):
     for name, contents in file_defs.items():
         full_name = os.path.join(prefix, name)
         if isinstance(contents, dict):
-            if not os.path.exists(full_name):
-                os.makedirs(full_name)
+            pkg_resources.py31compat.makedirs(full_name, exist_ok=True)
             build_files(contents, prefix=full_name)
         else:
             with open(full_name, 'w') as f:
index ab9b3469abedad7d2ede72e6ada86ae636b02bc4..65eec7d93f0dadda6ac3c831b9a8f686cdf17915 100644 (file)
@@ -10,6 +10,7 @@ import itertools
 from distutils import log
 from distutils.errors import DistutilsTemplateError
 
+import pkg_resources.py31compat
 from setuptools.command.egg_info import FileList, egg_info, translate_pattern
 from setuptools.dist import Distribution
 from setuptools.extern import six
@@ -361,8 +362,7 @@ class TestFileListTest(TempDirTestCase):
         for file in files:
             file = os.path.join(self.temp_dir, file)
             dirname, basename = os.path.split(file)
-            if not os.path.exists(dirname):
-                os.makedirs(dirname)
+            pkg_resources.py31compat.makedirs(dirname, exist_ok=True)
             open(file, 'w').close()
 
     def test_process_template_line(self):