
    Fwg)                         d Z ddlmZmZ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(...)"     not changed
    "print ... ,"    into "print(..., end=' ')"
    "print >>x, ..." into "print(..., file=x)"

No changes are applied if print_function is imported from __future__

    )patcomppytree
fixer_base)token)NameCallCommaStringz8atom< '(' [arith_expr|atom|power|term|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(  rr|d d }d}|d   j                         D cg c]"  }|j                  t        j                  k(  s!|$ }	}|	r+|	d   j                  d   dk7  r|	d   j                  d	d d
v r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 c c}
w )Nbareprint)prefixr       r)z\tz\nz\r z>>      sependfile)getreplacer   r   r   childrenlenparend_exprmatchr	   leavestyper   STRINGvaluer   Leaf
RIGHTSHIFTclone	add_kwargr
   repr)selfnoderesults
bare_printargsr   r   r   leafstring_leavesargl_argsn_stmts                R/var/www/horilla/myenv/lib/python3.12/site-packages/libfuturize/fixes/fix_print.py	transformzFixPrint.transform$   s+   w[[(
tDNB&0&7&7 9 :
 }}Q4>111}}QR t9>k//Q8 cDDH'9DC /32hoo.?]d499PUP\P\C\T]M]!"%++A.#5!"%++Br26KKDGv{{5+;+;UCCt9>!>7==?D8D)-.##))+.."F1I?co1Avvvd3i/@Avvvd3i/@Avw5d8nf- ; ^ /s   "H43H4>H9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        r5   r)   zFixPrint.add_kwarg^   sk    [[!3!3"&u+"(++ekk4"@"("*+
 NN57# $Jz"    N)__name__
__module____qualname__BM_compatiblePATTERNr6   r)    rB   r5   r   r      s    MG8t
#rB   r   N)__doc__lib2to3r   r   r   lib2to3.pgen2r   lib2to3.fixer_utilr   r   r	   r
   compile_patternr    BaseFixr   rH   rB   r5   <module>rO      sF    0 /  8 8 &g%%L
L#z!! L#rB   