|
1 # Copyright (C) 2005, Giovanni Bajo |
|
2 # Based on previous work under copyright (c) 2001, 2002 McMillan Enterprises, Inc. |
|
3 # |
|
4 # This program is free software; you can redistribute it and/or |
|
5 # modify it under the terms of the GNU General Public License |
|
6 # as published by the Free Software Foundation; either version 2 |
|
7 # of the License, or (at your option) any later version. |
|
8 # |
|
9 # This program is distributed in the hope that it will be useful, |
|
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 # GNU General Public License for more details. |
|
13 # |
|
14 # You should have received a copy of the GNU General Public License |
|
15 # along with this program; if not, write to the Free Software |
|
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|
17 |
|
18 hiddenimports = ['xml.sax.xmlreader','xml.sax.expatreader'] |
|
19 |
|
20 def hook(mod): |
|
21 import os, tempfile, sys, string, marshal |
|
22 fnm = tempfile.mktemp() |
|
23 if string.find(sys.executable, ' ') > -1: |
|
24 exe = '"%s"' % sys.executable |
|
25 else: |
|
26 exe = sys.executable |
|
27 os.system('%s -c "import xml;print xml.__file__" >"%s"' % (exe, fnm)) |
|
28 txt = open(fnm, 'r').read()[:-1] |
|
29 os.remove(fnm) |
|
30 if string.find(txt, '_xmlplus') > -1: |
|
31 if txt[:-3] == ".py": |
|
32 txt = txt + 'c' |
|
33 co = marshal.loads(open(txt, 'rb').read()[8:]) |
|
34 mod.__init__('xml', txt, co) |
|
35 return mod |