changeset 4472:201a70400242

Misc: cache loaded modules. Not reloading module fixes weird inheritance/binding problem.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Fri, 24 Oct 2008 12:25:37 +0200
parents eb03a77d8e77
children 91ba244fc57c
files gub/misc.py
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/gub/misc.py	Fri Oct 24 12:20:38 2008 +0200
+++ b/gub/misc.py	Fri Oct 24 12:25:37 2008 +0200
@@ -12,12 +12,17 @@
 def join_lines (str):
     return str.replace ('\n', ' ')
 
+modules = {}
+
 def load_module (file_name, name=None):
     if not name:
         name = os.path.split (os.path.basename (file_name))[0]
-    file = open (file_name)
-    desc = ('.py', 'U', 1)
-    return imp.load_module (name, file, file_name, desc)
+    key = name + '::' + file_name
+    if not modules.has_key (key):
+        file = open (file_name)
+        desc = ('.py', 'U', 1)
+        modules[key] = imp.load_module (name, file, file_name, desc)
+    return modules[key]
 
 def load_spec (spec_file_name):
     # FIXME: should use settings.specdir