관리-도구
편집 파일: fix_execfile.cpython-36.pyc
3 \ � @ sV d Z ddlmZ ddlmZmZmZmZmZm Z m Z mZmZm Z G dd� dej�ZdS )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 @ s e Zd ZdZdZdd� ZdS )�FixExecfileTz� power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > > | power< 'execfile' trailer< '(' filename=any ')' > > c C s0 |st �|d }|jd�}|jd�}|jd jd j� }t|j� t� tdd�g|d�}ttj t d�|g�}ttjt� t d �g�ttjt � t� g�g} |g| } |j� }d|_td d�}| t� |t� |g } tt d�| d�}|g}|d k � r�|jt� |j� g� |d k �r|jt� |j� g� tt d �||jd�S )N�filename�globals�locals� z"rb"� )Zrparen�open�readz'exec'�compile� �exec)�prefix���r )�AssertionError�getZchildrenZcloner r r r r Zpowerr Ztrailerr r r r r �extend)�selfZnodeZresultsr r r Zexecfile_parenZ open_argsZ open_callr Z open_exprZfilename_argZexec_strZcompile_argsZcompile_call�args� r �2/usr/lib64/python3.6/lib2to3/fixes/fix_execfile.py� transform s, zFixExecfile.transformN)�__name__� __module__�__qualname__Z BM_compatibleZPATTERNr! r r r r r s r N)�__doc__r r Z fixer_utilr r r r r r r r r r ZBaseFixr r r r r �<module> s 0