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