aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/sdist.py
diff options
context:
space:
mode:
authorStefan H. Holek <stefan@epy.co.at>2012-10-08 19:52:32 +0200
committerStefan H. Holek <stefan@epy.co.at>2012-10-08 19:52:32 +0200
commitd76ec4bfdf2fe9a2bced5ca2a3610831020453c6 (patch)
tree77ab3132075646f1755d5c72cd9e95087651dc57 /setuptools/command/sdist.py
parent6851d4e38e1e4e5a2bbbf2556523fd19675cdbf7 (diff)
downloadexternal_python_setuptools-d76ec4bfdf2fe9a2bced5ca2a3610831020453c6.tar.gz
external_python_setuptools-d76ec4bfdf2fe9a2bced5ca2a3610831020453c6.tar.bz2
external_python_setuptools-d76ec4bfdf2fe9a2bced5ca2a3610831020453c6.zip
Read and write manifest in UTF-8 under Python 3. Fixes #303.
--HG-- branch : distribute extra : rebase_source : 609c654effd2711aa803f6a0e84013294026608f
Diffstat (limited to 'setuptools/command/sdist.py')
-rwxr-xr-xsetuptools/command/sdist.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/setuptools/command/sdist.py b/setuptools/command/sdist.py
index a176f635..d5259c2b 100755
--- a/setuptools/command/sdist.py
+++ b/setuptools/command/sdist.py
@@ -262,7 +262,34 @@ class sdist(_sdist):
self.get_finalized_command('egg_info').save_version_info(dest)
+ def _manifest_is_not_generated(self):
+ # check for special comment used in 2.7.1 and higher
+ if not os.path.isfile(self.manifest):
+ return False
+ fp = open(self.manifest, 'rbU')
+ try:
+ first_line = fp.readline()
+ finally:
+ fp.close()
+ return first_line != '# file GENERATED by distutils, do NOT edit\n'.encode()
+
+ def read_manifest(self):
+ """Read the manifest file (named by 'self.manifest') and use it to
+ fill in 'self.filelist', the list of files to include in the source
+ distribution.
+ """
+ log.info("reading manifest file '%s'", self.manifest)
+ manifest = open(self.manifest, 'rbU')
+ for line in manifest:
+ if sys.version_info >= (3,):
+ line = line.decode('UTF-8')
+ # ignore comments and blank lines
+ line = line.strip()
+ if line.startswith('#') or not line:
+ continue
+ self.filelist.append(line)
+ manifest.close()