a 97a8 @s\dZddlmZmZmZddlmZddlmZm Z m Z m Z e dZ GdddejZdS) 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__ )patcomppytree fixer_base)token)NameCallCommaStringz8atom< '(' [arith_expr|atom|power|term|STRING|NAME] ')' >c@s$eZdZdZdZddZddZdS)FixPrintTzP simple_stmt< any* bare='print' any* > | print_stmt c Cs|sJ|d}|r4|ttdg|jddS|jdtdksJJ|jdd}t|dkrvt|drvdSd}}}|r|dt kr|dd}d}|r|dt t j dkrt|d ksJ|d}|d d}d d |D}|rd |d_|dus"|dus"|durz|durB||dtt||durb||dtt||durz||d|ttd|} |j| _| S)NZbareprint)prefixr z>>cSsg|] }|qS)clone).0argrrv/private/var/folders/s6/9n5zrl012gv99k63s4q6ccsd4s6mqz/T/pip-target-f5cq3f2q/lib/python/libfuturize/fixes/fix_print.py Az&FixPrint.transform..sependfile)getreplacerrr childrenlen parend_exprmatchrrLeafr RIGHTSHIFTr add_kwargr repr) selfnoderesultsZ bare_printargsrrrZl_argsZn_stmtrrr transform$s@         zFixPrint.transformcCsNd|_t|jjt|ttjd|f}|r@| t d|_| |dS)Nr=r) r rNodeZsymsZargumentrr#rEQUALappendr)r'Zl_nodesZs_kwdZn_exprZ n_argumentrrrr%Ts   zFixPrint.add_kwargN)__name__ __module__ __qualname__Z BM_compatibleZPATTERNr+r%rrrrr s0r N)__doc__Zlib2to3rrrZ lib2to3.pgen2rZlib2to3.fixer_utilrrrr compile_patternr!ZBaseFixr rrrrs