ó v®¸Qc@sšdZddlmZddlmZddlmZddlmZddlmZm Z m Z m Z m Z ej dƒZdejfd „ƒYZd S( s 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__ i(tpatcomp(tpytree(ttoken(t fixer_base(tNametCalltCommatStringtis_tuples"atom< '(' [atom|STRING|NAME] ')' >tFixPrintcBs&eZeZdZd„Zd„ZRS(sP simple_stmt< any* bare='print' any* > | print_stmt c Cs2|s t‚|jdƒ}|rJ|jttdƒgd|jƒƒdS|jdtdƒksit‚|jd}t|ƒdkrŸtj |dƒrŸdSd}}}|rÙ|dt ƒkrÙ|d }d}n|r3|dt j tjdƒkr3t|ƒd kst‚|djƒ}|d }ng|D]}|jƒ^q:} | rhd | d_n|dk sŒ|dk sŒ|dk r |dk rº|j| d tt|ƒƒƒn|dk rè|j| d tt|ƒƒƒn|dk r |j| d|ƒq nttdƒ| ƒ} |j| _| S(Ntbareuprinttprefixiiiÿÿÿÿt u>>iiuusepuendufile(tAssertionErrortgettreplaceRRR tchildrentlent parend_exprtmatchtNoneRRtLeafRt RIGHTSHIFTtclonet add_kwargRtrepr( tselftnodetresultst bare_printtargstseptendtfiletargtl_argstn_stmt((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyt transform%s>   %  % $ " "  cCsrd|_tj|jjt|ƒtjtjdƒ|fƒ}|ra|j t ƒƒd|_n|j |ƒdS(Nuu=u ( R RtNodetsymstargumentRRRtEQUALtappendR(Rtl_nodests_kwdtn_exprt n_argument((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyRMs    (t__name__t __module__tTruet BM_compatibletPATTERNR%R(((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyR s (N(t__doc__tRRtpgen2RRt fixer_utilRRRRRtcompile_patternRtBaseFixR (((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyts(