diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2006-01-27 12:21:07 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2006-01-27 12:21:07 +0000 |
commit | 6bf1820ba23583a96331dedc07338dc2ee78564b (patch) | |
tree | d4793bf8f81721644d0e0ebeddaba208bf85e954 | |
parent | b7cc1f63d4bd51ea8df16305d8213a10d7493f3a (diff) | |
download | numpy-6bf1820ba23583a96331dedc07338dc2ee78564b.tar.gz |
Added data_files generator support - removed a piece of core.setup function.
-rw-r--r-- | numpy/distutils/command/build_src.py | 38 | ||||
-rw-r--r-- | numpy/distutils/core.py | 10 | ||||
-rw-r--r-- | numpy/distutils/misc_util.py | 4 |
3 files changed, 39 insertions, 13 deletions
diff --git a/numpy/distutils/command/build_src.py b/numpy/distutils/command/build_src.py index 368cfdf77..13548452f 100644 --- a/numpy/distutils/command/build_src.py +++ b/numpy/distutils/command/build_src.py @@ -61,6 +61,7 @@ class build_src(build_ext.build_ext): self.extensions = self.distribution.ext_modules self.libraries = self.distribution.libraries or [] self.py_modules = self.distribution.py_modules or [] + self.data_files = self.distribution.data_files or [] if self.build_src is None: self.build_src = os.path.join(self.build_base, 'src') @@ -102,9 +103,46 @@ class build_src(build_ext.build_ext): for ext in self.extensions: self.build_extension_sources(ext) + self.build_data_files_sources() + + return + + def build_data_files_sources(self): + if not self.data_files: + return + log.info('building data_files sources') + from numpy.distutils.misc_util import get_data_files + new_data_files = [] + for data in self.data_files: + if isinstance(data,str): + new_data_files.append(data) + elif isinstance(data,tuple): + d,files = data + funcs = filter(callable,files) + files = filter(lambda f:not callable(f), files) + for f in funcs: + if f.func_code.co_argcount==1: + s = f(os.path.join(self.build_src,d)) + else: + s = f() + if s is not None: + if isinstance(s,list): + files.extend(s) + elif isinstance(s,str): + files.append(s) + else: + raise TypeError,`s` + filenames = get_data_files((d,files)) + new_data_files.append((d, filenames)) + else: + raise + self.data_files[:] = new_data_files return def build_py_modules_sources(self): + if not self.py_modules: + return + log.info('building py_modules sources') new_py_modules = [] for source in self.py_modules: if type(source) is type(()) and len(source)==3: diff --git a/numpy/distutils/core.py b/numpy/distutils/core.py index 724e1517f..d246448ed 100644 --- a/numpy/distutils/core.py +++ b/numpy/distutils/core.py @@ -80,16 +80,6 @@ def setup(**attr): and not new_attr.has_key('headers'): new_attr['headers'] = [] - # Expand directories in data_files to files - if new_attr.has_key('data_files'): - new_data_files = [] - for data in new_attr['data_files']: - if type(data) is types.StringType: - new_data_files.append(get_data_files(data)[0]) - else: - new_data_files.append((data[0],get_data_files(data))) - new_attr['data_files'] = new_data_files - return old_setup(**new_attr) def _check_append_library(libraries, item): diff --git a/numpy/distutils/misc_util.py b/numpy/distutils/misc_util.py index d17a31c6d..dd2a11d2a 100644 --- a/numpy/distutils/misc_util.py +++ b/numpy/distutils/misc_util.py @@ -249,9 +249,7 @@ def get_data_files(data): filenames = [] for s in sources: if callable(s): - s = s() - if s is None: - continue + continue if is_local_src_dir(s): os.path.walk(s,_gsf_visit_func,filenames) elif type(s) is type(''): |