mercurial/packagescan.py
changeset 2979 985594e891b8
parent 2858 345bac2bc4ec
child 2982 799811087044
equal deleted inserted replaced
2974:eef469259745 2979:985594e891b8
    23 requiredmodules = {}
    23 requiredmodules = {}
    24 def demandload(scope, modules):
    24 def demandload(scope, modules):
    25     """ fake demandload function that collects the required modules
    25     """ fake demandload function that collects the required modules
    26         foo            import foo
    26         foo            import foo
    27         foo bar        import foo, bar
    27         foo bar        import foo, bar
       
    28         foo@bar        import foo as bar
    28         foo.bar        import foo.bar
    29         foo.bar        import foo.bar
    29         foo:bar        from foo import bar
    30         foo:bar        from foo import bar
    30         foo:bar,quux   from foo import bar, quux
    31         foo:bar,quux   from foo import bar, quux
    31         foo.bar:quux   from foo.bar import quux"""
    32         foo.bar:quux   from foo.bar import quux"""
    32 
    33 
    36             module, fromlist = m.split(':')
    37             module, fromlist = m.split(':')
    37             fromlist = fromlist.split(',')
    38             fromlist = fromlist.split(',')
    38         except:
    39         except:
    39             module = m
    40             module = m
    40             fromlist = []
    41             fromlist = []
       
    42         if '@' in module:
       
    43             module, as_ = module.split('@')
    41         mod = __import__(module, scope, scope, fromlist)
    44         mod = __import__(module, scope, scope, fromlist)
    42         if fromlist == []:
    45         if fromlist == []:
    43             # mod is only the top package, but we need all packages
    46             # mod is only the top package, but we need all packages
    44             comp = module.split('.')
    47             comp = module.split('.')
    45             i = 1
    48             i = 1