
bc           @   s   d  Z  d g Z d d l Z g  Z d   Z d   Z e e d  rR e e j  n  e e _ e d k r d   Z	 d	   Z
 d d
  Z e e	  e e
 d  e e d d  e e d  n  d S(   s   
atexit.py - allow programmer to define multiple exit functions to be executed
upon normal program termination.

One public function, register, is defined.
t   registeriNc          C   s   d }  x t r t j   \ } } } y | | |   Wq	 t k
 rT t j   }  q	 d d l } t j d IJ| j   t j   }  q	 Xq	 W|  d k	 r |  d |  d |  d  n  d S(   s   run any registered exit functions

    _exithandlers is traversed in reverse order so functions are executed
    last in, first out.
    iNs   Error in atexit._run_exitfuncs:i    i   i   (	   t   Nonet   _exithandlerst   popt
   SystemExitt   syst   exc_infot	   tracebackt   stderrt	   print_exc(   R   t   funct   targst   kargsR   (    (    s   /usr/lib/python2.7/atexit.pyt   _run_exitfuncs   s    	
c         O   s   t  j |  | | f  |  S(   s  register a function to be executed upon normal program termination

    func - function to be called at exit
    targs - optional arguments to pass to func
    kargs - optional keyword arguments to pass to func

    func is returned to facilitate usage as a decorator.
    (   R   t   append(   R
   R   R   (    (    s   /usr/lib/python2.7/atexit.pyR    %   s    	t   exitfunct   __main__c           C   s	   d GHd  S(   Ns
   running x1(    (    (    (    s   /usr/lib/python2.7/atexit.pyt   x17   s    c         C   s   d |  f GHd  S(   Ns   running x2(%r)(    (   t   n(    (    s   /usr/lib/python2.7/atexit.pyt   x29   s    c         C   s   d |  | f GHd  S(   Ns   running x3(%r, kwd=%r)(    (   R   t   kwd(    (    s   /usr/lib/python2.7/atexit.pyt   x3;   s    i   i   t   bars   no kwd args(   t   __doc__t   __all__R   R   R   R    t   hasattrR   t   __name__R   R   R   R   (    (    (    s   /usr/lib/python2.7/atexit.pyt   <module>   s    						
