Your IP : 3.17.181.112
U
e5d � @ sl d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZm Z m
Z
mZ e�d�Z
G dd � d ej�Zd
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 @ s$ e Zd ZdZdZdd� Zdd� ZdS )�FixPrintTzP
simple_stmt< any* bare='print' any* > | print_stmt
c
C s� |st �|�d�}|r4|�ttd�g |jd�� d S |jd td�ksJt �|jdd � }t|�dkrvt� |d �rvd S d } }}|r�|d t
� kr�|d d� }d}|r�|d t�t
jd�kr�t|�d ks�t �|d �� }|d
d � }dd� |D �}|�rd
|d _|d k �s"|d k �s"|d k �rz|d k �rB| �|dtt|��� |d k �rb| �|dtt|��� |d k �rz| �|d|� ttd�|�} |j| _| S )NZbare�print)�prefix� � ���� z>>r � c S s g | ]}|� � �qS � )�clone)�.0�argr r �//usr/lib64/python3.8/lib2to3/fixes/fix_print.py�
<listcomp>? s z&FixPrint.transform.<locals>.<listcomp>� �sep�end�file)�AssertionError�get�replacer r r Zchildren�len�parend_expr�matchr r �Leafr �
RIGHTSHIFTr � add_kwargr �repr)
�selfZnodeZresultsZ
bare_print�argsr r r Zl_argsZn_stmtr r r � transform% s@
�
zFixPrint.transformc C sN d|_ t�| jjt|�t�tjd�|f�}|r@|� t
� � d|_ |� |� d S )Nr �=r )r r ZNodeZsymsZargumentr r"