3
\ ã @ sl d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZm Z m
Z
mZ ejdƒ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` |j dƒ}|r,|jttdƒg |jd�ƒ d S |jdd … }t|ƒdkrXtj|d ƒrXd S d } }}|r†|d t ƒ kr†|d d… }d}|r¸|d t
jtj
dƒkr¸|d jƒ }|dd … }d d
„ |D ƒ}|rÔd|d _|d k sî|d k sî|d k �rF|d k �r| j|dtt|ƒƒƒ |d k �r.| j|d
tt|ƒƒƒ |d k �rF| j|d|ƒ ttdƒ|ƒ} |j| _| S )NZbareÚprint)Úprefixé é ú z>>é c S s g | ]}|j ƒ ‘qS © )Úclone)Ú.0Úargr r ú//usr/lib64/python3.6/lib2to3/fixes/fix_print.pyú