@@ -400,12 +400,25 @@ def collect(module_pattern, path, pred):
retval = [] for module_file in os.listdir(path):
if not module_file.endswith(".py") or module_file == "__init__.py":
if module_file == "__init__.py": continue
mod_name = module_file[:-3]module = importlib.import_module(module_pattern % mod_name)
try:mod_name = module_file[:module_file.rindex(".")]except ValueError:mod_name = module_filetry:imp.acquire_lock()mod_info = imp.find_module(mod_name, path)module = imp.load_module(module_pattern % mod_name, *mod_info)imp.release_lock()except ImportError:continuefinally:if mod_info[0]:mod_info[0].close()
I wish the imp module locking thing worked more like other lock-related code so you could do:
with imp.lock do: ...
but that's hardly a knock on your patch.
- Chris