
    daf                      n    d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZ  G d dej                        Zy)zoFixer for execfile.

This converts usages of the execfile function into calls to the built-in
exec() function.
   )
fixer_base)
CommaNameCallLParenRParenDotNodeArgListStringsymsc                       e Zd ZdZdZd Zy)FixExecfileTz
    power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >
    |
    power< 'execfile' trailer< '(' filename=any ')' > >
    c                    |sJ |d   }|j                  d      }|j                  d      }|j                  d   j                  d   j                         }t        |j                         t	               t        dd      g|      }t        t        j                  t        d      |g      }t        t        j                  t               t        d	      g      t        t        j                  t               t               g      g}	|g|	z   }
|j                         }d|_        t        d
d      }|
t	               |t	               |gz   }t        t        d      |d      }|g}|)|j!                  t	               |j                         g       |)|j!                  t	               |j                         g       t        t        d      ||j                        S )Nfilenameglobalslocalsz"rb" )rparenopenreadz'exec'compile exec)prefix)getchildrencloner   r   r   r
   r   powerr   trailerr	   r   r   r   r   extend)selfnoderesultsr   r   r   execfile_paren	open_args	open_callr   	open_exprfilename_argexec_strcompile_argscompile_callargss                   5/root/Python-3.12.4/Lib/lib2to3/fixes/fix_execfile.py	transformzFixExecfile.transform   s|   w:&++i(X& r*33B7==?X^^-uwvs8KL#13	d6lI%>?	T\\CE4<#89T\\FHfh#78:K$&	  ~~'!(C( EG\57H#MMDO\2>~KK'--/23KK&,,.12DL$t{{;;    N)__name__
__module____qualname__BM_compatiblePATTERNr0    r1   r/   r   r      s    MG<r1   r   N)__doc__r   r   
fixer_utilr   r   r   r   r   r	   r
   r   r   r   BaseFixr   r7   r1   r/   <module>r;      s0    1 1 1&<*$$ &<r1   