diff --git a/mercurial/demandload.py b/mercurial/demandload.py --- 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)