B YI~d�@sRddlmZddlmZmZmZmZmZmZm Z m Z m Z m Z Gdd�dej �ZdS)�)� fixer_base) �Comma�Name�Call�LParen�RParen�Dot�Node�ArgList�String�symsc@seZdZdZdZdd�ZdS)� FixExecfileTz� power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > > | power< 'execfile' trailer< '(' filename=any ')' > > cCs&|d}|�d�}|�d�}|jdjd��}t|��t�tdd�g|d�}ttjt d�|g�}ttj t �t d �g�ttj t �t �g�g} |g| } |��} d| _td d�} | t�| t�| g} tt d �| d �}|g}|dk r�|�t�|��g�|dk �r|�t�|��g�tt d �||jd�S)N�filename�globals�locals�����z"rb"� )Zrparen�open�readz'exec'�compile��exec)�prefix)�getZchildrenZcloner rr r r ZpowerrZtrailerrrrrr�extend)�selfZnode�resultsrrrZexecfile_parenZ open_argsZ open_callrZ open_exprZ filename_argZexec_strZ compile_argsZ compile_call�args�r�?/opt/alt/python37/lib64/python3.7/lib2to3/fixes/fix_execfile.py� transforms*     zFixExecfile.transformN)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNr rrrrr sr N)rrZ fixer_utilrrrrrrr r r r ZBaseFixr rrrr� s 0