\d dZddlmZddlmZddlmZddlmZddlmZm Z m Z m Z ej dZ Gdd ejZd 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)NameCallCommaStringz"atom< '(' [atom|STRING|NAME] ')' >c"eZdZdZdZdZdZdS)FixPrintTzP simple_stmt< any* bare='print' any* > | print_stmt c (|sJ|d}|r9|ttdg|jdS|jdtdksJ|jdd}t |dkr"t|drdSdx}x}}|r$|dtkr |dd}d}|rb|dtj tj dkr9t |d ksJ|d}|d d}d |D}|r d |d_||||1||d t!t#||1||dt!t#||||d|ttd|} |j| _| S)Nbareprint)prefix z>>rc6g|]}|S)clone).0args (..\python\lib\lib2to3\fixes\fix_print.py z&FixPrint.transform..?s ...##))++...sependfile)getreplacerrrchildrenlen parend_exprmatchr rLeafr RIGHTSHIFTr add_kwargr repr) selfnoderesults bare_printargsrr r!l_argsn_stmts r transformzFixPrint.transform%s[[((     tDMM2&0&7 9 9 9 : : : F}Q4==0000}QRR  t99>>k//Q88> FcD  DH''9DC  DGv{5+;TBBBBt99>>>>7==??D8D.....  "!F1I  ?co1AvufT#YY.?.?@@@vufT#YY.?.?@@@vvt444d7mmV,,   rc*d|_tj|jjt |tjtjd|f}|r(| td|_| |dS)Nr=r) rrNodesymsargumentrr(rEQUALappendr )r,l_nodess_kwdn_expr n_arguments rr*zFixPrint.add_kwargMs [!3"&u++"(+ek3"?"?"("*++   $ NN577 # # # #J z"""""rN)__name__ __module__ __qualname__ BM_compatiblePATTERNr3r*rrrr r s?MG&&&P # # # # #rr N)__doc__rrrpgen2rr fixer_utilrrr r compile_patternr&BaseFixr rrrrIs  222222222222&g%6 :#:#:#:#:#z!:#:#:#:#:#r