[IMP] import hook: allow and give precedence to our own modules.

This should be reverted for 6.2 when the openerp.addons namespace will
be the only option.

lp bug: https://launchpad.net/bugs/929466 fixed

bzr revid: vmt@openerp.com-20120209163016-1wiw1xsrppumjvfl
This commit is contained in:
Vo Minh Thu
2012-02-09 17:30:16 +01:00
parent 80f9a1e770
commit 3bb6596890
+4 -5
View File
@@ -101,10 +101,9 @@ class AddonsImportHook(object):
# Check if the bare module name clashes with another module.
f, path, descr = imp.find_module(module_parts[0])
_logger.warning("""
Ambiguous import: the OpenERP module `%s` is shadowed by another
module (available at %s).
To import it, use `import openerp.addons.<module>.`.""" % (module_name, path))
return
Ambiguous import: the OpenERP module `%s` is shadowing another
module (available at %s).""" % (module_name, path))
return self # We act as a loader too.
except ImportError, e:
# Using `import <module_name>` instead of
# `import openerp.addons.<module_name>` is ugly but not harmful
@@ -137,7 +136,7 @@ To import it, use `import openerp.addons.<module>.`.""" % (module_name, path))
# Note: we don't support circular import.
f, path, descr = imp.find_module(module_part, ad_paths)
mod = imp.load_module('openerp.addons.' + module_part, f, path, descr)
if not is_shadowing:
if is_shadowing or not is_shadowing: # == if True, but keep the defined variable.
sys.modules[module_part] = mod
for k in sys.modules.keys():
if k.startswith('openerp.addons.' + module_part):