grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \ ã@sldZddlmZddlmZddlmZddlmZddlmZm Z m Z m Z ej dƒZ Gdd „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$eZdZdZdZdd„Zdd„ZdS)ÚFixPrintTzP simple_stmt< any* bare='print' any* > | print_stmt c Cs”|st‚|jdƒ}|r4|jttdƒg|jd�ƒdS|jdtdƒksJt‚|jdd…}t|ƒdkrvtj |dƒrvdSd}}}|r¤|dt ƒkr¤|dd…}d}|ræ|dt j t jdƒkræt|ƒdksÎt‚|djƒ}|d d…}d d „|Dƒ}|�rd |d_|dk �s"|dk �s"|dk �rz|dk �rB|j|d tt|ƒƒƒ|dk �rb|j|dtt|ƒƒƒ|dk �rz|j|d|ƒttdƒ|ƒ} |j| _| S)NZbareÚprint)Úprefixééú z>>récSsg|] }|jƒ‘qS©)Úclone)Ú.0Úargrrú//usr/lib64/python3.6/lib2to3/fixes/fix_print.pyú ?sz&FixPrint.transform..ÚÚsepÚendÚfileéÿÿÿÿr)ÚAssertionErrorÚgetÚreplacerrr ZchildrenÚlenÚ parend_exprÚmatchrrÚLeafrÚ RIGHTSHIFTrÚ add_kwargr Úrepr) ÚselfZnodeZresultsZ bare_printÚargsrrrZl_argsZn_stmtrrrÚ transform%s>          zFixPrint.transformcCsNd|_tj|jjt|ƒtjtjdƒ|fƒ}|r@|j t ƒƒd|_|j |ƒdS)Nrú=r) r rZNodeZsymsZargumentrr"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Ús