comparison mercurial/packagescan.py @ 2996:799811087044

merge.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Tue, 22 Aug 2006 07:55:10 -0700
parents 0171a5432621 985594e891b8
children eb0b4a2d70a9
comparison
equal deleted inserted replaced
2995:0171a5432621 2996:799811087044
1 # packagescan.py - Helper module for identifing used modules. 1 # packagescan.py - Helper module for identifing used modules.
2 # Used for the py2exe distutil. 2 # Used for the py2exe distutil.
3 # This module must be the first mercurial module imported in setup.py 3 # This module must be the first mercurial module imported in setup.py
4 # 4 #
5 # Copyright 2005 Volker Kleinfeld <Volker.Kleinfeld@gmx.de> 5 # Copyright 2005, 2006 Volker Kleinfeld <Volker.Kleinfeld@gmx.de>
6 # 6 #
7 # This software may be used and distributed according to the terms 7 # This software may be used and distributed according to the terms
8 # of the GNU General Public License, incorporated herein by reference. 8 # of the GNU General Public License, incorporated herein by reference.
9 import glob 9 import glob
10 import os 10 import os
37 module, fromlist = m.split(':') 37 module, fromlist = m.split(':')
38 fromlist = fromlist.split(',') 38 fromlist = fromlist.split(',')
39 except: 39 except:
40 module = m 40 module = m
41 fromlist = [] 41 fromlist = []
42 as = None 42 as_ = None
43 if '@' in module: 43 if '@' in module:
44 module, as = module.split("@") 44 module, as_ = module.split('@')
45 mod = __import__(module, scope, scope, fromlist) 45 mod = __import__(module, scope, scope, fromlist)
46 if fromlist == []: 46 if fromlist == []:
47 # mod is only the top package, but we need all packages 47 # mod is only the top package, but we need all packages
48 comp = module.split('.') 48 comp = module.split('.')
49 i = 1 49 i = 1
50 mn = comp[0] 50 mn = comp[0]
51 while True: 51 while True:
52 # mn and mod.__name__ might not be the same 52 # mn and mod.__name__ might not be the same
53 if not as: 53 if not as_:
54 as = mn 54 as_ = mn
55 scope[as] = mod 55 scope[as_] = mod
56 requiredmodules[mod.__name__] = 1 56 requiredmodules[mod.__name__] = 1
57 if len(comp) == i: break 57 if len(comp) == i: break
58 mod = getattr(mod,comp[i]) 58 mod = getattr(mod,comp[i])
59 mn = string.join(comp[:i+1],'.') 59 mn = string.join(comp[:i+1],'.')
60 i += 1 60 i += 1