home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2775 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.9 KB  |  74 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import imp
  5. import sys
  6. import zipimport
  7. import _memimporter
  8.  
  9. class ZipExtensionImporter(zipimport.zipimporter):
  10.     _suffixes = _[1]
  11.     
  12.     def find_module(self, fullname, path = None):
  13.         result = zipimport.zipimporter.find_module(self, fullname, path)
  14.         if result:
  15.             return result
  16.  
  17.     
  18.     def locate_dll_image(self, name):
  19.         if name in self._files:
  20.             return self.get_data(name)
  21.  
  22.     
  23.     def load_module(self, fullname):
  24.         if sys.modules.has_key(fullname):
  25.             mod = sys.modules[fullname]
  26.             if _memimporter.get_verbose_flag():
  27.                 sys.stderr.write('import %s # previously loaded from zipfile %s\n' % (fullname, self.archive))
  28.             
  29.             return mod
  30.         _memimporter.set_find_proc(self.locate_dll_image)
  31.         
  32.         try:
  33.             return zipimport.zipimporter.load_module(self, fullname)
  34.         except zipimport.ZipImportError:
  35.             sys.modules.has_key(fullname)
  36.             sys.modules.has_key(fullname)
  37.         except:
  38.             sys.modules.has_key(fullname)
  39.  
  40.         initname = 'init' + fullname.split('.')[-1]
  41.         filename = fullname.replace('.', '\\')
  42.         if filename in ('pywintypes', 'pythoncom'):
  43.             filename = filename + '%d%d' % sys.version_info[:2]
  44.             suffixes = ('.dll',)
  45.         else:
  46.             suffixes = self._suffixes
  47.         for s in suffixes:
  48.             path = filename + s
  49.             if path in self._files:
  50.                 if _memimporter.get_verbose_flag():
  51.                     sys.stderr.write('# found %s in zipfile %s\n' % (path, self.archive))
  52.                 
  53.                 code = self.get_data(path)
  54.                 mod = _memimporter.import_module(code, initname, fullname, path)
  55.                 mod.__file__ = '%s\\%s' % (self.archive, path)
  56.                 mod.__loader__ = self
  57.                 if _memimporter.get_verbose_flag():
  58.                     sys.stderr.write('import %s # loaded from zipfile %s\n' % (fullname, mod.__file__))
  59.                 
  60.                 return mod
  61.         
  62.         raise zipimport.ZipImportError, "can't find module %s" % fullname
  63.  
  64.     
  65.     def __repr__(self):
  66.         return '<%s object %r>' % (self.__class__.__name__, self.archive)
  67.  
  68.  
  69.  
  70. def install():
  71.     sys.path_hooks.insert(0, ZipExtensionImporter)
  72.     sys.path_importer_cache.clear()
  73.  
  74.