diff --git a/VERSION b/VERSION index ea981eb9..5d6f6bbe 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.4.1-alpha.2+timestamp.2013.02.06.10.31.19 +Version 2.4.1-alpha.2+timestamp.2013.02.06.11.34.01 diff --git a/gluon/custom_import.py b/gluon/custom_import.py index 0233e331..0d62c37f 100644 --- a/gluon/custom_import.py +++ b/gluon/custom_import.py @@ -61,22 +61,26 @@ def custom_importer(name, globals=None, locals=None, fromlist=None, level=-1): and isinstance(globals, dict): import_tb = None try: - items = current.request.folder.split(os.path.sep) - if not items[-1]: - items = items[:-1] - modules_prefix = '.'.join(items[-2:]) + '.modules' - if not fromlist: - # import like "import x" or "import x.y" - result = None - for itemname in name.split("."): - new_mod = base_importer( - modules_prefix, globals, locals, [itemname], level) - try: - result = result or new_mod.__dict__[itemname] - except KeyError, e: - raise ImportError, 'Cannot import module %s' % str(e) - modules_prefix += "." + itemname - return result + try: + oname = name if not name.startswith('.') else '.'+name + return NATIVE_IMPORTER(oname, globals, locals, fromlist, level) + except ImportError: + items = current.request.folder.split(os.path.sep) + if not items[-1]: + items = items[:-1] + modules_prefix = '.'.join(items[-2:]) + '.modules' + if not fromlist: + # import like "import x" or "import x.y" + result = None + for itemname in name.split("."): + new_mod = base_importer( + modules_prefix, globals, locals, [itemname], level) + try: + result = result or new_mod.__dict__[itemname] + except KeyError, e: + raise ImportError, 'Cannot import module %s' % str(e) + modules_prefix += "." + itemname + return result else: # import like "from x import a, b, ..." pname = modules_prefix + "." + name