summaryrefslogtreecommitdiff
path: root/numpy/distutils/misc_util.py
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2006-01-26 22:05:44 +0000
committerPearu Peterson <pearu.peterson@gmail.com>2006-01-26 22:05:44 +0000
commite59bb826219298274ca8c2a87f94e83b52a6175c (patch)
tree9fec6c2d2df4eec9c45c6e253b23b43e4fdad415 /numpy/distutils/misc_util.py
parentf6d28d03b06dd15c9523a84047d6bec8b987b2d9 (diff)
downloadnumpy-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.py37
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: