Your IP : 216.73.216.166
U
e5d�@sldZddlmZddlmZddlmZddlmZddlmZm Z m
Z
mZe�d�Z
Gdd �d ej�Zd
S)aFixer 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$eZdZdZdZdd�Zdd�ZdS)�FixPrintTzP
simple_stmt< any* bare='print' any* > | print_stmt
c
Cs�|st�|�d�}|r4|�ttd�g|jd��dS|jdtd�ksJt�|jdd�}t|�dkrvt� |d�rvdSd}}}|r�|dt
�kr�|dd�}d}|r�|dt�t
jd�kr�t|�d ks�t�|d��}|d
d�}dd�|D�}|�rd
|d_|dk �s"|dk �s"|dk �rz|dk �rB|�|dtt|���|dk �rb|�|dtt|���|dk �rz|�|d|�ttd�|�} |j| _| S)NZbare�print)�prefix������ z>>r�cSsg|]}|���qS�)�clone)�.0�argrr�//usr/lib64/python3.8/lib2to3/fixes/fix_print.py�
<listcomp>?sz&FixPrint.transform.<locals>.<listcomp>��sep�end�file)�AssertionError�get�replacerrrZchildren�len�parend_expr�matchrr�Leafr�
RIGHTSHIFTr� add_kwargr �repr)
�selfZnodeZresultsZ
bare_print�argsrrrZl_argsZn_stmtrrr� transform%s@
�
zFixPrint.transformcCsNd|_t�|jjt|�t�tjd�|f�}|r@|� t
��d|_|� |�dS)Nr�=r)rrZNodeZsymsZargumentrr"r�EQUAL�appendr)r&Zl_nodesZs_kwdZn_exprZ
n_argumentrrrr$Ms
��zFixPrint.add_kwargN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNr(r$rrrrr
s(r
N)�__doc__rrrZpgen2rrZ
fixer_utilrrrr Zcompile_patternr ZBaseFixr
rrrr�<module>s
�
?>