o bc@s:dZddlmZddlmZmZmZGdddejZdS)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) ) fixer_base)CommaNameCallc@seZdZdZdZddZdS)FixExecTzx exec_stmt< 'exec' a=any 'in' b=any [',' c=any] > | exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any > cCs|sJ|j}|d}|d}|d}|g}d|d_|dur-|t|g|dur;|t|gttd||jdS)Nabcexec)prefix)symsgetcloner extendrrr)selfnoderesultsrrrr argsr-/usr/lib/python3.10/lib2to3/fixes/fix_exec.py transforms    zFixExec.transformN)__name__ __module__ __qualname__ BM_compatiblePATTERNrrrrrrs rN) __doc__r r fixer_utilrrrBaseFixrrrrrs