#2279 added the plain path case for data_files
diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py
index 291e812..a1a0fb7 100644
--- a/Lib/distutils/command/sdist.py
+++ b/Lib/distutils/command/sdist.py
@@ -14,7 +14,7 @@
from distutils.errors import *
from distutils.filelist import FileList
from distutils import log
-
+from distutils.util import convert_path
def show_formats ():
"""Print all possible values for the 'formats' option (used by
@@ -311,9 +311,17 @@
# getting distribution.data_files
if self.distribution.has_data_files():
- for dirname, filenames in self.distribution.data_files:
- for filename in filenames:
- self.filelist.append(os.path.join(dirname, filename))
+ for item in self.distribution.data_files:
+ if isinstance(item, str): # plain file
+ item = convert_path(item)
+ if os.path.isfile(item):
+ self.filelist.append(item)
+ else: # a (dirname, filenames) tuple
+ dirname, filenames = item
+ for f in filenames:
+ f = convert_path(os.path.join(dirname, f))
+ if os.path.isfile(f):
+ self.filelist.append(f)
if self.distribution.has_ext_modules():
build_ext = self.get_finalized_command('build_ext')