diff options
-rwxr-xr-x | setuptools.txt | 5 | ||||
-rw-r--r-- | setuptools/command/build_py.py | 18 |
2 files changed, 14 insertions, 9 deletions
diff --git a/setuptools.txt b/setuptools.txt index 49400d00..6fff960f 100755 --- a/setuptools.txt +++ b/setuptools.txt @@ -2501,6 +2501,11 @@ Release Notes/Change History 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 diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index 373930ac..79570bc2 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -92,18 +92,18 @@ class build_py(_build_py): 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 @@ class build_py(_build_py): 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 @@ setup.py directory, *never* absolute paths. - - - - |