ž zyMaĆc@sydZddlmZddlmZmZmZmZmZm Z m Z m Z m Z m Z Gdd„dejƒZdS(uoFixer for execfile. This converts usages of the execfile function into calls to the built-in exec() function. i(u fixer_base( uCommauNameuCalluLParenuRParenuDotuNodeuArgListuStringusymscBs,|EeZdZdZdZdd„ZdS(u FixExecfileuŤ 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(Nufilenameuglobalsulocalsiurparenuopenureadu u'exec'ucompileuuexecuprefixi˙˙˙˙i˙˙˙˙(uAssertionErrorugetuchildrenucloneuArgListuNodeusymsupoweruNameutraileruDotuLParenuRParenuprefixuStringuCommauCalluNoneuextend(uselfunodeuresultsufilenameuglobalsulocalsuexecfile_parenu open_argsu open_callureadu open_expru filename_arguexec_stru compile_argsu compile_calluargs((u?/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_execfile.pyu transforms*  !      uFixExecfile.transformNT(u__name__u __module__u __qualname__uTrueu BM_compatibleuPATTERNu transform(u __locals__((u?/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_execfile.pyu FixExecfilesu FixExecfileN(u__doc__uu fixer_baseu fixer_utiluCommauNameuCalluLParenuRParenuDotuNodeuArgListuStringusymsuBaseFixu FixExecfile(((u?/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_execfile.pyusF