[Python-checkins] cpython (3.5): Closes #25085 and #25086: Exclude distutils and test directories from

steve.dower python-checkins at python.org
Wed Sep 23 02:02:09 CEST 2015


https://hg.python.org/cpython/rev/812e30f67d6e
changeset:   98175:812e30f67d6e
branch:      3.5
user:        Steve Dower <steve.dower at microsoft.com>
date:        Tue Sep 22 15:03:54 2015 -0700
summary:
  Closes #25085 and #25086: Exclude distutils and test directories from embeddable distro.

files:
  Tools/msi/make_zip.proj |   2 ++
  Tools/msi/make_zip.py   |  23 +++++++++++++++++++++--
  2 files changed, 23 insertions(+), 2 deletions(-)


diff --git a/Tools/msi/make_zip.proj b/Tools/msi/make_zip.proj
--- a/Tools/msi/make_zip.proj
+++ b/Tools/msi/make_zip.proj
@@ -14,6 +14,7 @@
         <TargetName>python-$(PythonVersion)-embed-$(ArchName)</TargetName>
         <TargetExt>.zip</TargetExt>
         <TargetPath>$(OutputPath)\en-us\$(TargetName)$(TargetExt)</TargetPath>
+        <CleanCommand>rmdir /q/s "$(IntermediateOutputPath)\zip_$(ArchName)"</CleanCommand>
         <Arguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\make_zip.py"</Arguments>
         <Arguments>$(Arguments) -e -o "$(TargetPath)" -t "$(IntermediateOutputPath)\zip_$(ArchName)" -a $(ArchName)</Arguments>
         <Environment>set DOC_FILENAME=python$(PythonVersion).chm
@@ -23,6 +24,7 @@
     <Target Name="_Build">
         <Exec Command="setlocal
 $(Environment)
+$(CleanCommand)
 $(Arguments)" />
     </Target>
 
diff --git a/Tools/msi/make_zip.py b/Tools/msi/make_zip.py
--- a/Tools/msi/make_zip.py
+++ b/Tools/msi/make_zip.py
@@ -15,6 +15,20 @@
 DEBUG_RE = re.compile(r'_d\.(pyd|dll|exe)$', re.IGNORECASE)
 PYTHON_DLL_RE = re.compile(r'python\d\d?\.dll$', re.IGNORECASE)
 
+EXCLUDE_FROM_LIBRARY = {
+    '__pycache__',
+    'ensurepip',
+    'idlelib',
+    'pydoc_data',
+    'site-packages',
+    'tkinter',
+    'turtledemo',
+}
+
+EXCLUDE_FILE_FROM_LIBRARY = {
+    'bdist_wininst.py',
+}
+
 def is_not_debug(p):
     if DEBUG_RE.search(p.name):
         return False
@@ -37,16 +51,21 @@
 def include_in_lib(p):
     name = p.name.lower()
     if p.is_dir():
-        if name in {'__pycache__', 'ensurepip', 'idlelib', 'pydoc_data', 'tkinter', 'turtledemo'}:
+        if name in EXCLUDE_FROM_LIBRARY:
             return False
         if name.startswith('plat-'):
             return False
         if name == 'test' and p.parts[-2].lower() == 'lib':
             return False
+        if name in {'test', 'tests'} and p.parts[-3].lower() == 'lib':
+            return False
         return True
 
+    if name in EXCLUDE_FILE_FROM_LIBRARY:
+        return False
+
     suffix = p.suffix.lower()
-    return suffix not in {'.pyc', '.pyo'}
+    return suffix not in {'.pyc', '.pyo', '.exe'}
 
 def include_in_tools(p):
     if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}:

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list