]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Add case-sensitive file comparison for detecting/adding standard default files.
authorJason R. Coombs <jaraco@jaraco.com>
Fri, 14 Oct 2016 19:39:01 +0000 (15:39 -0400)
committerJason R. Coombs <jaraco@jaraco.com>
Fri, 14 Oct 2016 19:39:01 +0000 (15:39 -0400)
Lib/distutils/command/sdist.py
Misc/NEWS

index c66d82713d74eefad68d6809fe4a7d9cd5129c86..0cc01192f3d67c6f92b723082ba26f69123ca5d5 100644 (file)
@@ -32,6 +32,24 @@ def show_formats():
     FancyGetopt(formats).print_help(
         "List of available source distribution formats:")
 
+
+def cs_path_exists(fspath):
+    """
+    Case-sensitive path existence check
+
+    >>> cs_path_exists(__file__)
+    True
+    >>> cs_path_exists(__file__.upper())
+    False
+    """
+    if not os.path.exists(fspath):
+        return False
+    # make absolute so we always have a directory
+    abspath = os.path.abspath(fspath)
+    directory, filename = os.path.split(abspath)
+    return filename in os.listdir(directory)
+
+
 class sdist(Command):
 
     description = "create a source distribution (tarball, zip file, etc.)"
@@ -235,7 +253,7 @@ class sdist(Command):
                 alts = fn
                 got_it = False
                 for fn in alts:
-                    if os.path.exists(fn):
+                    if cs_path_exists(fn):
                         got_it = True
                         self.filelist.append(fn)
                         break
@@ -244,7 +262,7 @@ class sdist(Command):
                     self.warn("standard file not found: should have one of " +
                               ', '.join(alts))
             else:
-                if os.path.exists(fn):
+                if cs_path_exists(fn):
                     self.filelist.append(fn)
                 else:
                     self.warn("standard file '%s' not found" % fn)
index 22b14fb317934c47292d56473871177342986981..dfbf1677d6f004a03949ef433fa69b533410afa6 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -85,6 +85,11 @@ Core and Builtins
 Library
 -------
 
+- Distutils.sdist now looks for README and setup.py files with case
+  sensitivity. This behavior matches that found in Setuptools 6.0 and
+  later. See `setuptools 100
+  <https://github.com/pypa/setuptools/issues/100>`_ for rationale.
+
 - Issue #24452: Make webbrowser support Chrome on Mac OS X.
 
 - Issue #20766: Fix references leaked by pdb in the handling of SIGINT