Mercurial > gub
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