o
    ,º]8  ã                   @   s\   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 d¡ZG dd„ dejƒZdS )	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                   @   s$   e Zd ZdZdZdd„ Zdd„ ZdS )ÚFixPrintTzP
              simple_stmt< any* bare='print' any* > | print_stmt
              c           
      C   s†  |sJ ‚|  d¡}|r| ttdƒg |jd�¡ d S |jd tdƒks%J ‚|jdd … }t|ƒdkr;t |d ¡r;d S d  } }}|rR|d t	ƒ krR|d d… }d}|rs|d t
 tjd¡krst|ƒd	ksgJ ‚|d  ¡ }|d
d … }dd„ |D ƒ}|r�d|d _|d us�|d us�|d ur¶|d urœ|  |dtt|ƒƒ¡ |d ur«|  |dtt|ƒƒ¡ |d ur¶|  |d|¡ ttdƒ|ƒ}	|j|	_|	S )NÚbareÚprint)Úprefixr   é   éÿÿÿÿú z>>é   é   c                 S   s   g | ]}|  ¡ ‘qS © )Úclone)Ú.0Úargr   r   úX/var/www/html/myproject/venv/lib/python3.10/site-packages/libfuturize/fixes/fix_print.pyÚ
<listcomp>A   s    z&FixPrint.transform.<locals>.<listcomp>Ú Ú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_stmtr   r   r   Ú	transform$   s@   
ÿ
zFixPrint.transformc                 C   sN   d|_ t | jjt|ƒt 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_argumentr   r   r   r%   T   s   
þÿzFixPrint.add_kwargN)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNr.   r%   r   r   r   r   r
      s
    0r
   N)Ú__doc__Úlib2to3r   r   r   Úlib2to3.pgen2r   Úlib2to3.fixer_utilr   r   r   r	   Úcompile_patternr!   ÚBaseFixr
   r   r   r   r   Ú<module>   s   ÿ