Mercurial > hg
changeset 2995:0171a5432621
Support the demandload syntax "@" in packagescan
author | Volker Kleinfeld <Volker.Kleinfeld@gmx.de> |
---|---|
date | Thu, 10 Aug 2006 16:59:58 +0200 |
parents | 49988d9f0758 |
children | 799811087044 |
files | mercurial/packagescan.py |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/packagescan.py Wed Aug 09 13:55:18 2006 -0500 +++ b/mercurial/packagescan.py Thu Aug 10 16:59:58 2006 +0200 @@ -26,6 +26,7 @@ foo import foo foo bar import foo, bar foo.bar import foo.bar + foo@bar import foo as bar foo:bar from foo import bar foo:bar,quux from foo import bar, quux foo.bar:quux from foo.bar import quux""" @@ -38,6 +39,9 @@ except: module = m fromlist = [] + as = None + if '@' in module: + module, as = module.split("@") mod = __import__(module, scope, scope, fromlist) if fromlist == []: # mod is only the top package, but we need all packages @@ -46,7 +50,9 @@ mn = comp[0] while True: # mn and mod.__name__ might not be the same - scope[mn] = mod + if not as: + as = mn + scope[as] = mod requiredmodules[mod.__name__] = 1 if len(comp) == i: break mod = getattr(mod,comp[i])