Ë
    	š„j@  ã                   óz   — d Z ddlmZmZ ddlmZ ddlmZmZm	Z	m
Z
mZmZ ddlmZ  G d„ dej                  «      Zy)	až  Fixer for 'raise E, V'

From Armin Ronacher's ``python-modernize``.

raise         -> raise
raise E       -> raise E
raise E, 5    -> raise E(5)
raise E, 5, T -> raise E(5).with_traceback(T)
raise E, None, T -> raise E.with_traceback(T)

raise (((E, E'), E''), E'''), 5 -> raise E(5)
raise "foo", V, T               -> warns about string exceptions

raise E, (V1, V2) -> raise E(V1, V2)
raise E, (V1, V2), T -> raise E(V1, V2).with_traceback(T)


CAVEATS:
1) "raise E, V, T" cannot be translated safely in general. If V
   is not a tuple or a (number, string, None) literal, then:

   raise E, V, T -> from future.utils import raise_
                    raise_(E, V, T)
é    )ÚpytreeÚ
fixer_base)Útoken)ÚNameÚCallÚis_tupleÚCommaÚAttrÚArgList)Útouch_import_topc                   ó   — e Zd ZdZdZd„ Zy)ÚFixRaiseTzB
    raise_stmt< 'raise' exc=any [',' val=any [',' tb=any]] >
    c                 ó�  — | j                   }|d   j                  «       }|j                  t        j                  k(  rd}| j                  ||«       y t        |«      rHt        |«      r6|j                  d   j                  d   j                  «       }t        |«      rŒ6d|_        d|v r|d   j                  «       }nd }d|v �r|d   j                  «       }t        |«      r7|j                  dd D �cg c]  }|j                  «       ‘Œ }	}t        ||	«      }nÁ|j                  t        j                  t        j                  fv rd	|_        t        ||g«      }n€|j                  t        j                  k(  r|j                  d
k(  rnSt        dd|«       d	|_        |t        «       |g}	|�|	t        «       |gz  }	t        t        d«      |	|j                  ¬«      S |�+d	|_        t!        |t        d«      «      t#        |g«      gz   }
n|g}
t%        j&                  |j(                  t        d«      g|
z   |j                  ¬«      S c c}w )NÚexcz+Python 3 does not support string exceptionsé   r   ú ÚtbÚvaléÿÿÿÿÚ ÚNonezfuture.utilsÚraise_)ÚprefixÚwith_tracebackÚraise)ÚsymsÚcloneÚtyper   ÚSTRINGÚcannot_convertr   Úchildrenr   r   ÚNUMBERÚNAMEÚvaluer   r	   r   r
   r   r   ÚNodeÚ
raise_stmt)ÚselfÚnodeÚresultsr   r   Úmsgr   r   ÚcÚargsÚexc_lists              úR/var/www/html/GAP/venv/lib/python3.12/site-packages/libfuturize/fixes/fix_raise.pyÚ	transformzFixRaise.transform*   sü  € Ø�y‰yˆà�e‰n×"Ñ"Ó$ˆØ�8‰8”u—|‘|Ò#Ø?ˆCØ×Ñ  cÔ*Øô �CŒ=Ü˜3”-ð —l‘l 1‘o×.Ñ.¨qÑ1×7Ñ7Ó9�ô ˜3•-ð ˆCŒJà�7‰?Ø˜‘×$Ñ$Ó&‰BàˆBà�GÒØ˜%‘.×&Ñ&Ó(ˆCÜ˜Œ}à+.¯<©<¸¸"Ð+=Ö> a˜Ÿ™�	Ð>�Ð>Ü˜3 “o‘Ø—‘œeŸl™l¬E¯L©LÐ9Ñ9ð !�”
Ü˜3  Ó&‘Ø—‘œUŸZ™ZÒ'¨C¯I©I¸Ò,@ð ô ! °)¸TÔBØ �”
ØœU›W cÐ*�Ø�>ØœU›W b˜MÑ)�DÜœD ›O¨T¸$¿+¹+ÔFÐFàˆ>ØˆBŒIÜ˜C¤Ð&6Ó!7Ó8¼GÀRÀD»M¸?ÑJ‰Hà�uˆHä�{‰{˜4Ÿ?™?Ü  ›NÐ+¨hÑ6Ø"&§+¡+ô/ð 	/ùòA ?s   Ã3IN)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNr/   © ó    r.   r   r   #   s   „ à€Mð€GóA/r6   r   N)Ú__doc__Úlib2to3r   r   Úlib2to3.pgen2r   Úlib2to3.fixer_utilr   r   r   r	   r
   r   Úlibfuturize.fixer_utilr   ÚBaseFixr   r5   r6   r.   ú<module>r=      s/   ðñ÷6 'Ý ß I× Iå 3ôH/ˆz×!Ñ!õ H/r6   