£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3

  \.                 @   sZ   d Z ddlmZ ddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZ G dd dejZdS )	zFixer for generator.throw(E, V, T).

g.throw(E)       -> g.throw(E)
g.throw(E, V)    -> g.throw(E(V))
g.throw(E, V, T) -> g.throw(E(V).with_traceback(T))

g.throw("foo"[, V[, T]]) will warn about string exceptions.   )pytree)token)
fixer_base)NameCallArgListAttris_tuplec               @   s   e Zd ZdZdZdd ZdS )FixThrowTz
    power< any trailer< '.' 'throw' >
           trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' >
    >
    |
    power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > >
    c             C   s   | j }|d j }|jtjkr.| j|d d S |jd}|d krDd S |j }t|rndd |jdd D }nd|_	|g}|d }d	|kr|d	 j }d|_	t
||}	t|	td
t|gg }
|jtj|j|
 n|jt
|| d S )Nexcz+Python 3 does not support string exceptionsvalc             S   s   g | ]}|j  qS  )clone).0cr   r   //usr/lib64/python3.6/lib2to3/fixes/fix_throw.py
<listcomp>)   s    z&FixThrow.transform.<locals>.<listcomp>    argstbwith_traceback)symsr   typer   STRINGZcannot_convertgetr	   Zchildrenprefixr   r   r   r   replacer   ZNodeZpower)selfZnodeZresultsr   r   r   r   Z
throw_argsr   eZwith_tbr   r   r   	transform   s*    

zFixThrow.transformN)__name__
__module____qualname__ZBM_compatibleZPATTERNr!   r   r   r   r   r
      s   r
   N)__doc__r   r   Zpgen2r   r   Z
fixer_utilr   r   r   r   r	   ZBaseFixr
   r   r   r   r   <module>   s
   