File: //lib/python3.6/site-packages/libfuturize/fixes/__pycache__/fix_print.cpython-36.opt-1.pyc
3
�c) � @ s\ d Z ddlmZmZmZ ddlmZ ddlmZm Z m
Z
mZ ejd�Z
G dd� dej�ZdS ) 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 Zd ZdZdZdd� Zdd� ZdS )�FixPrintTzP
simple_stmt< any* bare='print' any* > | print_stmt
c C s� |j d�}|r,|jttd�g |jd�� d S |jdd � }t|�dkrXtj|d �rXd S d } }}|r�|d t � kr�|d d� }d}dd� |d j
� D �}|r�|d jd d kr�|d jdd� dkr�d}|o�|d tj
tjd�k�r |d j� }|d
d � }dd� |D �} | �rd| d _|d k �s<|d k �s<|d k �r�|d k �r\| j| dtt|��� |d k �r|| j| dtt|��� |d k �r�| j| d|� ttd�| �}
|j|
_|
S )NZbare�print)�prefix� r � c S s g | ]}|j tjkr|�qS � )�typer �STRING)�.0Zleafr r �/usr/lib/python3.6/fix_print.py�
<listcomp>? s z&FixPrint.transform.<locals>.<listcomp>�r� �\t�\n�\r� z>>c S s g | ]}|j � �qS r )�clone)r �argr r r r K s �sep�end�file���r r r r ���r )r r r )�get�replacer r r Zchildren�len�parend_expr�matchr Zleaves�valuer �Leafr �
RIGHTSHIFTr � add_kwargr �repr)�selfZnode�resultsZ
bare_print�argsr r r Z
string_leavesZl_argsZn_stmtr r r � transform$ sB
zFixPrint.transformc C sN d|_ tj| jjt|�tjtjd�|f�}|r@|j t
� � d|_ |j |� d S )Nr �=r )r r ZNodeZsymsZargumentr r( r �EQUAL�appendr )r, Zl_nodesZs_kwdZn_exprZ
n_argumentr r r r* ^ s
zFixPrint.add_kwargN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNr/ r* r r r r r
s :r
N)�__doc__Zlib2to3r r r Z
lib2to3.pgen2r Zlib2to3.fixer_utilr r r r Zcompile_patternr% ZBaseFixr
r r r r �<module> s