[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