ó
	Q[c           @   s[   d  Z  d d l m Z d d l m Z m Z m Z m Z m Z d e j	 f d     YZ
 d S(   u;   Fixer for 'raise E(V).with_traceback(T)' -> 'raise E, V, T'i˙˙˙˙(   t
   fixer_base(   t   Commat   Nodet   Leaft   tokent   symst   FixRaisec           B   s   e  Z d  Z d   Z RS(   uŞ   
    raise_stmt< 'raise' (power< name=any [trailer< '(' val=any* ')' >]
        [trailer< '.' 'with_traceback' > trailer< '(' trc=any ')' >] > | any) ['from' chain=any] >c   	      C   s  | j  d  | j  d  | j  d  } } } | j  d  } | d  k	 rt |  j | d  | j j   | j   n  | d  k	 r| r | d n t t j d  } d | _ | _ t t j d	  | j	   t
   | j	   t
   | j	   g } t t j |  } | j |  n  d  S(
   Nu   nameu   valu   trcu   chainu8   explicit exception chaining is not supported in Python 2i    u   Noneu    u   raise(   t   gett   Nonet   warningt   prev_siblingt   removeR   R   t   NAMEt   prefixt   cloneR   R   R   t
   raise_stmtt   replace(	   t   selft   nodet   resultst   namet   valt   trct   chaint   kidsR   (    (    s<   lib/python2.7/site-packages/libpasteurize/fixes/fix_raise.pyt	   transform   s    /"(   t   __name__t
   __module__t   PATTERNR   (    (    (    s<   lib/python2.7/site-packages/libpasteurize/fixes/fix_raise.pyR      s   N(   t   __doc__t   lib2to3R    t   lib2to3.fixer_utilR   R   R   R   R   t   BaseFixR   (    (    (    s<   lib/python2.7/site-packages/libpasteurize/fixes/fix_raise.pyt   <module>   s   (