§
    ZQd  ã                   ó˜   — d Z ddlm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  ej        d¦  «        Z G d„ d	ej        ¦  «        Zd
S )a  Fixer for print.

Change:
    'print'          into 'print()'
    'print ...'      into 'print(...)'
    'print ... ,'    into 'print(..., end=" ")'
    'print >>x, ...' into 'print(..., file=x)'

No changes are applied if print_function is imported from __future__

é   )Úpatcomp)Úpytree)Útoken)Ú
fixer_base)ÚNameÚCallÚCommaÚStringz"atom< '(' [atom|STRING|NAME] ')' >c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚFixPrintTzP
              simple_stmt< any* bare='print' any* > | print_stmt
              c           	      ó(  — |sJ ‚|                      d¦  «        }|r9|                     t          t          d¦  «        g |j        ¬¦  «        ¦  «         d S |j        d         t          d¦  «        k    sJ ‚|j        dd …         }t          |¦  «        dk    r"t                               |d         ¦  «        rd S d x}x}}|r$|d         t          ¦   «         k    r|d d…         }d}|rb|d         t          j        t          j        d¦  «        k    r9t          |¦  «        d	k    sJ ‚|d                              ¦   «         }|d
d …         }d„ |D ¦   «         }|rd|d         _        |€|€|�|�1|                      |dt!          t#          |¦  «        ¦  «        ¦  «         |�1|                      |dt!          t#          |¦  «        ¦  «        ¦  «         |�|                      |d|¦  «         t          t          d¦  «        |¦  «        }	|j        |	_        |	S )NÚbareÚprint)Úprefixé    é   éÿÿÿÿú z>>r   é   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS © )Úclone)Ú.0Úargs     ú./usr/lib/python3.11/lib2to3/fixes/fix_print.pyú
<listcomp>z&FixPrint.transform.<locals>.<listcomp>?   s    € Ð.Ð.Ð. #�#—)’)‘+”+Ð.Ð.Ð.ó    Ú ÚsepÚendÚfile)ÚgetÚreplacer   r   r   ÚchildrenÚlenÚparend_exprÚmatchr	   r   ÚLeafr   Ú
RIGHTSHIFTr   Ú	add_kwargr
   Úrepr)
ÚselfÚnodeÚresultsÚ
bare_printÚargsr   r    r!   Úl_argsÚn_stmts
             r   Ú	transformzFixPrint.transform%   s  € Øˆˆˆà—[’[ Ñ(Ô(ˆ
àð 	à×Ò�t¥D¨¡M¤M°2Ø&0Ô&7ð 9ñ  9ô  9ñ :ô :ð :àˆFØŒ}˜QÔ¥4¨¡=¤=Ò0Ð0Ð0Ð0ØŒ}˜Q˜R˜RÔ ˆÝˆt‰9Œ9˜Š>ˆ>�k×/Ò/°°Q´Ñ8Ô8ˆ>ð ˆFàÐˆÐˆc�DØð 	�D˜”H¥¡¤Ò'Ð'Ø˜˜˜”9ˆDØˆCØð 	�D˜”G�vœ{­5Ô+;¸TÑBÔBÒBÐBÝ�t‘9”9 ’>�>�>�>Ø˜”7—=’=‘?”?ˆDØ˜˜˜”8ˆDà.Ð.¨Ð.Ñ.Ô.ˆØð 	"Ø!ˆF�1ŒIÔØˆ?˜c˜o°Ð1AØˆØ—’˜v u­fµT¸#±Y´YÑ.?Ô.?Ñ@Ô@Ð@ØˆØ—’˜v u­fµT¸#±Y´YÑ.?Ô.?Ñ@Ô@Ð@ØÐØ—’˜v v¨tÑ4Ô4Ð4Ý•d˜7‘m”m VÑ,Ô,ˆØœˆŒØˆr   c                 ó*  — d|_         t          j        | j        j        t          |¦  «        t          j        t          j        d¦  «        |f¦  «        }|r(| 	                    t          ¦   «         ¦  «         d|_         | 	                    |¦  «         d S )Nr   ú=r   )r   r   ÚNodeÚsymsÚargumentr   r(   r   ÚEQUALÚappendr	   )r,   Úl_nodesÚs_kwdÚn_exprÚ
n_arguments        r   r*   zFixPrint.add_kwargM   sƒ   € àˆŒÝ”[ ¤Ô!3Ý"& u¡+¤+Ý"(¤+­e¬k¸3Ñ"?Ô"?Ø"(ð"*ñ+ô +ˆ
ð ð 	$Ø�NŠN�5™7œ7Ñ#Ô#Ð#Ø #ˆJÔØ�Š�zÑ"Ô"Ð"Ð"Ð"r   N)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNr3   r*   r   r   r   r   r      s?   € € € € € à€Mð€Gð&ð &ð &ðP
#ð 
#ð 
#ð 
#ð 
#r   r   N)Ú__doc__r   r   r   Úpgen2r   r   Ú
fixer_utilr   r   r	   r
   Úcompile_patternr&   ÚBaseFixr   r   r   r   ú<module>rI      sÍ   ðð
ð 
ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2ð &ˆgÔ%Ø6ñô €ð
:#ð :#ð :#ð :#ð :#ˆzÔ!ñ :#ô :#ð :#ð :#ð :#r   