
    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   [[((
 	tDMM2&0&7 9  9  9 : : :F}Q4==0000}QRR t99>>k//Q88> FcD 	DH''9DC 	DGv{5+;TBBBBt99>>>>7==??D8D..... 	"!F1I?co1AvufT#YY.?.?@@@vufT#YY.?.?@@@vvt444d7mmV,,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++"(+ek3"?"?"("*+ +
  	$NN577### #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   