Ñò
$8Zc           @   sg   d  Z  d d k l Z l Z d d k l Z l Z l Z l Z l	 Z	 l
 Z
 d e i f d „  ƒ  YZ d S(   s7   
Convert use of sys.exitfunc to use the atexit module.
iÿÿÿÿ(   t   pytreet
   fixer_base(   t   Namet   Attrt   Callt   Commat   Newlinet   symst   FixExitfuncc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s”  
              (
                  sys_import=import_name<'import'
                      ('sys'
                      |
                      dotted_as_names< (any ',')* 'sys' (',' any)* >
                      )
                  >
              |
                  expr_stmt<
                      power< 'sys' trailer< '.' 'exitfunc' > >
                  '=' func=any >
              )
              c         G   s   t  t |  ƒ i | Œ  d  S(   N(   t   superR   t   __init__(   t   selft   args(    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_exitfunc.pyR
      s    c         C   s&   t  t |  ƒ i | | ƒ d  |  _ d  S(   N(   R	   R   t
   start_treet   Nonet
   sys_import(   R   t   treet   filename(    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_exitfunc.pyR      s    c         C   s¨  d | j o& |  i  d  j o | d |  _  n d  S| d i ƒ  } d | _ t i t i t t	 d ƒ t	 d ƒ ƒ ƒ } t
 | | g | i ƒ } | i | ƒ |  i  d  j o |  i | d ƒ d  S|  i  i d } | i t i j o* | i t ƒ  ƒ | i t	 d d ƒ ƒ n˜ |  i  i } | i i |  i  ƒ } | i }	 t i t i t	 d	 ƒ t	 d d ƒ g ƒ }
 t i t i |
 g ƒ } | i | d t ƒ  ƒ | i | d
 | ƒ d  S(   NR   t   funcu    u   atexitu   registersK   Can't find sys import; Please add an atexit import at the top of your file.i   u    u   importi   (   R   R   t   clonet   prefixR    t   NodeR   t   powerR   R   R   t   replacet   warningt   childrent   typet   dotted_as_namest   append_childR   t   parentt   indext   import_namet   simple_stmtt   insert_childR   (   R   t   nodet   resultsR   t   registert   callt   namest   containing_stmtt   positiont   stmt_containert
   new_importt   new(    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_exitfunc.pyt	   transform#   s2    		(   t   __name__t
   __module__t   PATTERNR
   R   R,   (    (    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_exitfunc.pyR      s   		N(   t   __doc__t   lib2to3R    R   t   lib2to3.fixer_utilR   R   R   R   R   R   t   BaseFixR   (    (    (    s0   /usr/lib/python2.6/lib2to3/fixes/fix_exitfunc.pyt   <module>   s   .