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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __all__ = [
  5.     'register']
  6. import sys
  7. _exithandlers = []
  8.  
  9. def _run_exitfuncs():
  10.     exc_info = None
  11.     while _exithandlers:
  12.         (func, targs, kargs) = _exithandlers.pop()
  13.         
  14.         try:
  15.             func(*targs, **kargs)
  16.         continue
  17.         except SystemExit:
  18.             exc_info = sys.exc_info()
  19.             continue
  20.             import traceback
  21.             print >>sys.stderr, 'Error in atexit._run_exitfuncs:'
  22.             traceback.print_exc()
  23.             exc_info = sys.exc_info()
  24.             continue
  25.         
  26.  
  27.         None<EXCEPTION MATCH>SystemExit
  28.     if exc_info is not None:
  29.         raise exc_info[0], exc_info[1], exc_info[2]
  30.     exc_info is not None
  31.  
  32.  
  33. def register(func, *targs, **kargs):
  34.     _exithandlers.append((func, targs, kargs))
  35.     return func
  36.  
  37. if hasattr(sys, 'exitfunc'):
  38.     register(sys.exitfunc)
  39.  
  40. sys.exitfunc = _run_exitfuncs
  41. if __name__ == '__main__':
  42.     
  43.     def x1():
  44.         print 'running x1'
  45.  
  46.     
  47.     def x2(n):
  48.         print 'running x2(%r)' % (n,)
  49.  
  50.     
  51.     def x3(n, kwd = None):
  52.         print 'running x3(%r, kwd=%r)' % (n, kwd)
  53.  
  54.     register(x1)
  55.     register(x2, 12)
  56.     register(x3, 5, 'bar')
  57.     register(x3, 'no kwd args')
  58.  
  59.