[Python-checkins] r46791 - in sandbox/branches/setuptools-0.6: setuptools.txt setuptools/command/build_py.py

phillip.eby python-checkins at python.org
Fri Jun 9 20:26:46 CEST 2006


Author: phillip.eby
Date: Fri Jun  9 20:26:45 2006
New Revision: 46791

Modified:
   sandbox/branches/setuptools-0.6/setuptools.txt
   sandbox/branches/setuptools-0.6/setuptools/command/build_py.py
Log:
Allow .py files found by the include_package_data option to be
automatically included.  Remove duplicate data file matches if both
include_package_data and package_data are used to refer to the same
files.
(merge from trunk)


Modified: sandbox/branches/setuptools-0.6/setuptools.txt
==============================================================================
--- sandbox/branches/setuptools-0.6/setuptools.txt	(original)
+++ sandbox/branches/setuptools-0.6/setuptools.txt	Fri Jun  9 20:26:45 2006
@@ -2501,6 +2501,11 @@
 0.6b3
  * Fix bdist_egg not including files in .egg-info subdirectories.
 
+ * Allow .py files found by the include_package_data option to be
+   automatically included.  Remove duplicate data file matches if both
+   include_package_data and package_data are used to refer to the same
+   files.
+
 0.6b1
  * Strip ``module`` from the end of compiled extension modules when computing
    the name of a ``.py`` loader/wrapper.  (Python's import machinery ignores

Modified: sandbox/branches/setuptools-0.6/setuptools/command/build_py.py
==============================================================================
--- sandbox/branches/setuptools-0.6/setuptools/command/build_py.py	(original)
+++ sandbox/branches/setuptools-0.6/setuptools/command/build_py.py	Fri Jun  9 20:26:45 2006
@@ -92,18 +92,18 @@
         self.run_command('egg_info')
         ei_cmd = self.get_finalized_command('egg_info')
         for path in ei_cmd.filelist.files:
-            if path.endswith('.py'):
-                continue            
             d,f = os.path.split(assert_relative(path))
             prev = None
+            oldf = f
             while d and d!=prev and d not in src_dirs:
                 prev = d
                 d, df = os.path.split(d)
                 f = os.path.join(df, f)
             if d in src_dirs:
+                if path.endswith('.py') and f==oldf:
+                    continue    # it's a module, not data
                 mf.setdefault(src_dirs[d],[]).append(path)
 
-
     def get_data_files(self): pass  # kludge 2.4 for lazy computation
 
     if sys.version<"2.4":    # Python 2.4 already has this code
@@ -167,14 +167,18 @@
         globs = (self.exclude_package_data.get('', [])
                  + self.exclude_package_data.get(package, []))
         bad = []
-        for pattern in globs:           
+        for pattern in globs:
             bad.extend(
                 fnmatch.filter(
                     files, os.path.join(src_dir, convert_path(pattern))
                 )
             )
         bad = dict.fromkeys(bad)
-        return [f for f in files if f not in bad]
+        seen = {}
+        return [
+            f for f in files if f not in bad
+                and f not in seen and seen.setdefault(f,1)  # ditch dupes
+        ]
 
 
 def assert_relative(path):
@@ -199,7 +203,3 @@
 
 
 
-
-
-
-


More information about the Python-checkins mailing list