ó u®¸Qc@sydZddlmZddlmZmZmZmZmZm Z m Z m Z m Z m Z dejfd„ƒYZdS(soFixer for execfile. This converts usages of the execfile function into calls to the built-in exec() function. i(t fixer_base( tCommatNametCalltLParentRParentDottNodetArgListtStringtsymst FixExecfilecBseZeZdZd„ZRS(s« power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > > | power< 'execfile' trailer< '(' filename=any ')' > > cCs¦|s t‚|d}|jdƒ}|jdƒ}|jdjdjƒ}t|jƒgd|ƒ}ttjtdƒ|gƒ}ttj t ƒtdƒgƒttj t ƒt ƒgƒg} |g| } |jƒ} d| _ td dƒ} | tƒ| tƒ| g} ttd ƒ| d ƒ}|g}|dk r_|jtƒ|jƒgƒn|dk rŠ|jtƒ|jƒgƒnttd ƒ|d |j ƒS(Ntfilenametglobalstlocalsiÿÿÿÿtrparenuopenureadu u'exec'ucompileuuexectprefix(tAssertionErrortgettchildrentcloneRRR tpowerRttrailerRRRRR RRtNonetextend(tselftnodetresultsR R Rtexecfile_parent open_argst open_calltreadt open_exprt filename_argtexec_strt compile_argst compile_calltargs((s0/sys/lib/python2.7/lib2to3/fixes/fix_execfile.pyt transforms*  !      (t__name__t __module__tTruet BM_compatibletPATTERNR&(((s0/sys/lib/python2.7/lib2to3/fixes/fix_execfile.pyR sN(t__doc__tRt fixer_utilRRRRRRRRR R tBaseFixR (((s0/sys/lib/python2.7/lib2to3/fixes/fix_execfile.pytsF