[PATCH 11/16] Fix how we call imp API in collect
Martin Sivak
msivak at redhat.com
Thu Dec 6 15:46:34 UTC 2012
---
pyanaconda/ui/common.py | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/pyanaconda/ui/common.py b/pyanaconda/ui/common.py
index 29373fa..af1e5f9 100644
--- a/pyanaconda/ui/common.py
+++ b/pyanaconda/ui/common.py
@@ -434,6 +434,10 @@ def collect(module_pattern, path, pred):
retval = []
for module_file in os.listdir(path):
+ if (not module_file.endswith(".py")) and \
+ (not module_file.endswith(".so")):
+ continue
+
if module_file == "__init__.py":
continue
@@ -442,17 +446,19 @@ def collect(module_pattern, path, pred):
except ValueError:
mod_name = module_file
+ mod_info = None
+ module = None
try:
imp.acquire_lock()
- mod_info = imp.find_module(mod_name, path)
+ mod_info = imp.find_module(mod_name, [path])
module = imp.load_module(module_pattern % mod_name, *mod_info)
imp.release_lock()
except ImportError:
continue
finally:
- if mod_info[0]:
+ if mod_info and mod_info[0]:
mod_info[0].close()
-
+
p = lambda obj: inspect.isclass(obj) and pred(obj)
for (name, val) in inspect.getmembers(module, p):
--
1.7.11.7
More information about the anaconda-patches
mailing list