--- a/mercurial/demandload.py
+++ b/mercurial/demandload.py
@@ -96,6 +96,7 @@ def demandload(scope, modules):
foo import foo
foo bar import foo, bar
+ foo@bar import foo as bar
foo.bar import foo.bar
foo:bar from foo import bar
foo:bar,quux from foo import bar, quux
@@ -108,6 +109,9 @@ def demandload(scope, modules):
mod = mod[:col]
else:
fromlist = []
+ as = None
+ if '@' in mod:
+ mod, as = mod.split("@")
importer = _importer(scope, mod, fromlist)
if fromlist:
for name in fromlist:
@@ -126,4 +130,6 @@ def demandload(scope, modules):
continue
else:
basemod = mod
- scope[basemod] = _replacer(importer, basemod)
+ if not as:
+ as = basemod
+ scope[as] = _replacer(importer, as)