diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2006-01-26 22:05:44 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2006-01-26 22:05:44 +0000 |
commit | e59bb826219298274ca8c2a87f94e83b52a6175c (patch) | |
tree | 9fec6c2d2df4eec9c45c6e253b23b43e4fdad415 /numpy/distutils/misc_util.py | |
parent | f6d28d03b06dd15c9523a84047d6bec8b987b2d9 (diff) | |
download | numpy-e59bb826219298274ca8c2a87f94e83b52a6175c.tar.gz |
Added simple pattern support for Configuration.add_subpackage method.
Diffstat (limited to 'numpy/distutils/misc_util.py')
-rw-r--r-- | numpy/distutils/misc_util.py | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/numpy/distutils/misc_util.py b/numpy/distutils/misc_util.py index 3f646d8fb..54a154051 100644 --- a/numpy/distutils/misc_util.py +++ b/numpy/distutils/misc_util.py @@ -363,10 +363,22 @@ class Configuration: if subpackage_name is None: assert subpackage_path is not None subpackage_name = os.path.basename(subpackage_path) - assert '.' not in subpackage_name,`subpackage_name` + l = subpackage_name.split('.') if subpackage_path is None: - subpackage_path = os.path.join(self.local_path,subpackage_name) + subpackage_path = os.path.join(*([self.local_path]+l)) + if '*' in subpackage_name: + dirs = filter(os.path.isdir,glob.glob(subpackage_path)) + config_list = [] + for d in dirs: + if not os.path.isfile(os.path.join(d,'__init__.py')): + continue + n = '.'.join(d.split(os.sep)[-len(l):]) + c = self.get_subpackage(n) + if c: + config_list.append(c) + return config_list else: + subpackage_path = os.path.join(*([subpackage_path]+l[:-1])) subpackage_path = self._fix_paths([subpackage_path])[0] setup_py = os.path.join(subpackage_path,'setup_%s.py' % (subpackage_name)) @@ -407,17 +419,20 @@ class Configuration: """ Add subpackage to configuration. """ config = self.get_subpackage(subpackage_name,subpackage_path) - - if not config: - print 'No configuration returned, assuming unavailable.' + if not isinstance(config, list): + config_list = [config] else: - - if isinstance(config,Configuration): - print 'Appending %s configuration to %s' % (config.name,self.name) - self.dict_append(**config.todict()) + config_list = config + for config in config_list: + if not config: + print 'No configuration returned, assuming unavailable.' else: - print 'Appending %s configuration to %s' % (config.get('name'),self.name) - self.dict_append(**config) + if isinstance(config,Configuration): + print 'Appending %s configuration to %s' % (config.name,self.name) + self.dict_append(**config.todict()) + else: + print 'Appending %s configuration to %s' % (config.get('name'),self.name) + self.dict_append(**config) dist = self.get_distribution() if dist is not None: |