File: //usr/lib64/python2.7/atexit.pyc
�
� J]c           @   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   registeri����Nc          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.
    i����Ns   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/lib64/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/lib64/python2.7/atexit.pyR    %   s    	t   exitfunct   __main__c           C   s	   d GHd  S(   Ns
   running x1(    (    (    (    s   /usr/lib64/python2.7/atexit.pyt   x17   s    c         C   s   d |  f GHd  S(   Ns   running x2(%r)(    (   t   n(    (    s   /usr/lib64/python2.7/atexit.pyt   x29   s    c         C   s   d |  | f GHd  S(   Ns   running x3(%r, kwd=%r)(    (   R   t   kwd(    (    s   /usr/lib64/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/lib64/python2.7/atexit.pyt   <module>   s