fixed importing of local packages first (I hope)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
+20
-16
@@ -61,22 +61,26 @@ def custom_importer(name, globals=None, locals=None, fromlist=None, level=-1):
|
|||||||
and isinstance(globals, dict):
|
and isinstance(globals, dict):
|
||||||
import_tb = None
|
import_tb = None
|
||||||
try:
|
try:
|
||||||
items = current.request.folder.split(os.path.sep)
|
try:
|
||||||
if not items[-1]:
|
oname = name if not name.startswith('.') else '.'+name
|
||||||
items = items[:-1]
|
return NATIVE_IMPORTER(oname, globals, locals, fromlist, level)
|
||||||
modules_prefix = '.'.join(items[-2:]) + '.modules'
|
except ImportError:
|
||||||
if not fromlist:
|
items = current.request.folder.split(os.path.sep)
|
||||||
# import like "import x" or "import x.y"
|
if not items[-1]:
|
||||||
result = None
|
items = items[:-1]
|
||||||
for itemname in name.split("."):
|
modules_prefix = '.'.join(items[-2:]) + '.modules'
|
||||||
new_mod = base_importer(
|
if not fromlist:
|
||||||
modules_prefix, globals, locals, [itemname], level)
|
# import like "import x" or "import x.y"
|
||||||
try:
|
result = None
|
||||||
result = result or new_mod.__dict__[itemname]
|
for itemname in name.split("."):
|
||||||
except KeyError, e:
|
new_mod = base_importer(
|
||||||
raise ImportError, 'Cannot import module %s' % str(e)
|
modules_prefix, globals, locals, [itemname], level)
|
||||||
modules_prefix += "." + itemname
|
try:
|
||||||
return result
|
result = result or new_mod.__dict__[itemname]
|
||||||
|
except KeyError, e:
|
||||||
|
raise ImportError, 'Cannot import module %s' % str(e)
|
||||||
|
modules_prefix += "." + itemname
|
||||||
|
return result
|
||||||
else:
|
else:
|
||||||
# import like "from x import a, b, ..."
|
# import like "from x import a, b, ..."
|
||||||
pname = modules_prefix + "." + name
|
pname = modules_prefix + "." + name
|
||||||
|
|||||||
Reference in New Issue
Block a user