1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import sys, marshal
25 VER = sys.hexversion
26
27 debug = 0
28
31 return "<DBmodule '%s' originally from '%s'>" % (self.__name__, self.__file__)
32
33
34
36
38 print 'init',item, args, kw
39 '''
40 if item != "*db*":
41 raise ImportError
42 if debug:
43 print "dbimporter: item:", id(self), item, "args:", args, "keywords:", kw
44 print "Accepted", item
45 '''
46
48 print 'find_module',fullname, path
49 '''
50 if debug:
51 print "%x: find_module: %s from %s" % (id(self), fullname, path)
52 if fullname not in impdict:
53 if debug:
54 print "Bailed on", fullname
55 return None
56 else:
57 if debug:
58 print "found", fullname, "in db"
59 return self
60 '''
61
63 print 'load_module'
64 if debug:
65 print "%x: load_module: %s" % (id(self), modname)
66
67
68 if modname in sys.modules:
69 return sys.modules[modname]
70
71
72 if False:
73 raise ImportError, "DB module %s not found in modules"
74
75 code, package, path = ("","","")
76 code = marshal.loads(code)
77 module = DBmodule(modname)
78 sys.modules[modname] = module
79 module.__name__ = modname
80 module.__file__ = path
81 module.__loader__ = self
82 if package:
83 module.__path__ = ["*db*"]
84 exec code in module.__dict__
85 if debug:
86 print modname, "loaded:", module, "pkg:", package
87
88 return module
89
90
92 sys.path_hooks.append(hslumImporter)
93 sys.path_importer_cache.clear()
94 sys.path.insert(0, "*db*")
95