KMa@s_dZddlmZddlmZddlmZmZmZGdddejZ dS)zFixer for exec. This converts usages of the exec statement into calls to a built-in exec() function. exec code in ns1, ns2 -> exec(code, ns1, ns2) )pytree) fixer_base)CommaNameCallc@s(eZdZdZdZddZdS)FixExecTzx exec_stmt< 'exec' a=any 'in' b=any [',' c=any] > | exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any > cCs|s t|j}|d}|jd}|jd}|jg}d|d_|dk r|jt|jg|dk r|jt|jgttd|d|jS)Nabcexecprefix) AssertionErrorsymsgetZclonerextendrrr)selfZnodeZresultsrrr r argsr;/opt/alt/python35/lib64/python3.5/lib2to3/fixes/fix_exec.py transforms      zFixExec.transformN)__name__ __module__ __qualname__Z BM_compatibleZPATTERNrrrrrrs rN) __doc__r rrZ fixer_utilrrrZBaseFixrrrrr s