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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import __builtin__
  5. import imp
  6. import marshal
  7. import os
  8. import sys
  9. import traceback
  10. MAGIC = imp.get_magic()
  11. __all__ = [
  12.     'compile',
  13.     'main',
  14.     'PyCompileError']
  15.  
  16. class PyCompileError(Exception):
  17.     
  18.     def __init__(self, exc_type, exc_value, file, msg = ''):
  19.         exc_type_name = exc_type.__name__
  20.         if exc_type is SyntaxError:
  21.             tbtext = ''.join(traceback.format_exception_only(exc_type, exc_value))
  22.             errmsg = tbtext.replace('File "<string>"', 'File "%s"' % file)
  23.         else:
  24.             errmsg = 'Sorry: %s: %s' % (exc_type_name, exc_value)
  25.         if not msg:
  26.             pass
  27.         Exception.__init__(self, errmsg, exc_type_name, exc_value, file)
  28.         self.exc_type_name = exc_type_name
  29.         self.exc_value = exc_value
  30.         self.file = file
  31.         if not msg:
  32.             pass
  33.         self.msg = errmsg
  34.  
  35.     
  36.     def __str__(self):
  37.         return self.msg
  38.  
  39.  
  40. if os.name == 'mac':
  41.     import MacOS
  42.     
  43.     def set_creator_type(file):
  44.         MacOS.SetCreatorAndType(file, 'Pyth', 'PYC ')
  45.  
  46. else:
  47.     
  48.     def set_creator_type(file):
  49.         pass
  50.  
  51.  
  52. def wr_long(f, x):
  53.     f.write(chr(x & 255))
  54.     f.write(chr(x >> 8 & 255))
  55.     f.write(chr(x >> 16 & 255))
  56.     f.write(chr(x >> 24 & 255))
  57.  
  58.  
  59. def compile(file, cfile = None, dfile = None, doraise = False):
  60.     f = open(file, 'U')
  61.     
  62.     try:
  63.         timestamp = long(os.fstat(f.fileno()).st_mtime)
  64.     except AttributeError:
  65.         timestamp = long(os.stat(file).st_mtime)
  66.  
  67.     codestring = f.read()
  68.     f.close()
  69.     if codestring and codestring[-1] != '\n':
  70.         codestring = codestring + '\n'
  71.     
  72.     
  73.     try:
  74.         if not dfile:
  75.             pass
  76.         codeobject = __builtin__.compile(codestring, file, 'exec')
  77.     except Exception:
  78.         err = None
  79.         if not dfile:
  80.             pass
  81.         py_exc = PyCompileError(err.__class__, err.args, file)
  82.         if doraise:
  83.             raise py_exc
  84.         doraise
  85.         sys.stderr.write(py_exc.msg + '\n')
  86.         return None
  87.  
  88.     if cfile is None:
  89.         if not __debug__ or 'c':
  90.             pass
  91.         cfile = file + 'o'
  92.     
  93.     fc = open(cfile, 'wb')
  94.     fc.write('\x00\x00\x00\x00')
  95.     wr_long(fc, timestamp)
  96.     marshal.dump(codeobject, fc)
  97.     fc.flush()
  98.     fc.seek(0, 0)
  99.     fc.write(MAGIC)
  100.     fc.close()
  101.     set_creator_type(cfile)
  102.  
  103.  
  104. def main(args = None):
  105.     if args is None:
  106.         args = sys.argv[1:]
  107.     
  108.     rv = 0
  109.     for filename in args:
  110.         
  111.         try:
  112.             compile(filename, doraise = True)
  113.         continue
  114.         except PyCompileError:
  115.             err = None
  116.             rv = 1
  117.             sys.stderr.write(err.msg)
  118.             continue
  119.         
  120.  
  121.     
  122.     return rv
  123.  
  124. if __name__ == '__main__':
  125.     sys.exit(main())
  126.  
  127.