
    daf                         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y
)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y)FixPrintTzP
              simple_stmt< any* bare='print' any* > | print_stmt
              c           	         |sJ |j                  d      }|r1|j                  t        t        d      g |j                               y |j
                  d   t        d      k(  sJ |j
                  dd  }t        |      dk(  rt        j                  |d         ry d x}x}}|r|d   t               k(  r|d d }d}|rR|d   t        j                  t        j                  d      k(  r(t        |      d	k\  sJ |d   j                         }|d
d  }|D cg c]  }|j                          }	}|	r
d|	d   _        |||c|%| j                  |	dt!        t#        |                   |%| j                  |	dt!        t#        |                   || j                  |	d|       t        t        d      |	      }
|j                  |
_        |
S c c}w )Nbareprint)prefix        z>>r       sependfile)getreplacer   r   r   childrenlenparend_exprmatchr	   r   Leafr   
RIGHTSHIFTclone	add_kwargr
   repr)selfnoderesults
bare_printargsr   r   r   argl_argsn_stmts              2/root/Python-3.12.4/Lib/lib2to3/fixes/fix_print.py	transformzFixPrint.transform%   s   w[[(
tDM2&0&7&7 9 :}}Q4=000}}QR t9>k//Q8 cDDH'9DCDGv{{5+;+;TBBt9>!>7==?D8D)-.##))+..!F1I?co1AvufT#Y.?@vufT#Y.?@vvt4d7mV, /s   G	c                 (   d|_         t        j                  | j                  j                  t        |      t        j                  t        j                  d      |f      }|r |j                  t                      d|_         |j                  |       y )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   sk    [[!3!3"&u+"(++ekk3"?"("*+
 NN57# #Jz"    N)__name__
__module____qualname__BM_compatiblePATTERNr.   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>rF      sG   
     2 2 &g%%6
:#z!! :#r:   