
    daf                     R    d Z ddlmZ ddlmZmZmZ  G d dej                        Zy)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)CommaNameCallc                       e Zd ZdZdZd Zy)FixExecTzx
    exec_stmt< 'exec' a=any 'in' b=any [',' c=any] >
    |
    exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any >
    c                    |sJ | j                   }|d   }|j                  d      }|j                  d      }|j                         g}d|d   _        |)|j	                  t               |j                         g       |)|j	                  t               |j                         g       t        t        d      ||j                        S )Nabc     exec)prefix)symsgetcloner   extendr   r   r   )selfnoderesultsr   r
   r   r   argss           1/root/Python-3.12.4/Lib/lib2to3/fixes/fix_exec.py	transformzFixExec.transform   s    wyyCLKKKK	{Q=KK!''),-=KK!''),-DL$t{{;;    N)__name__
__module____qualname__BM_compatiblePATTERNr    r   r   r   r      s    MG<r   r   N)	__doc__r   r   
fixer_utilr   r   r   BaseFixr   r!   r   r   <module>r%      s'     * *<j   <r   