File: //usr/lib/python3/dist-packages/libpasteurize/fixes/__pycache__/fix_metaclass.cpython-38.pyc
U
,�]� � @ sj d Z ddlmZ ddlmZmZmZmZmZm Z ddl
mZ ddlm
Z
mZ dd� ZG dd � d ej�Zd
S )zn
Fixer for (metaclass=X) -> __metaclass__ = X
Some semantics (see PEP 3115) may be altered in the translation.� )�
fixer_base)�Name�syms�Node�Leaf�Newline� find_root)�token)�indentation�suitifyc
C s d }| j D � ]�}|j }|jtjkrd|d ttjd�krb|d ttjd�krb|d rb|g| } �qq
|jtjkr
|j D ]�}|r� q
|jtj kr�|}qvt|�t
krvd } }}|j D ]P} | ttjd�kr�| }q�|r�| ttjd�kr�| }q�|r�|r�| }||||f} qvq�qvq
|S )Nr � metaclass� �=� )�children�typer Zargumentr r �NAME�EQUALZarglist�COMMAr )
�parent�results�nodeZkidsZchildZcomma�meta�equal�name�arg� r �C/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_metaclass.py�
has_metaclass s: ��
r c @ s e Zd ZdZdd� ZdS )�FixMetaclassz
classdef<any*>
c
C s� t |�}|sd S |D ]}|�� qttjd�}ttjddd�}|}d|_ttj |||g�}t
|� |jD ]p} | jtj
krh| jD ]X}
|
jtjkr~| j�|
�d }ttj|
j�}| �||� | �|t� � | �||� qhq~qhd S )NZ
__metaclass__r � )�prefixr
)r �remover r r r r! r r Zatomr r r Zsuite�INDENT�index�valueZinsert_childr )
�selfr r Zmeta_resultsr �targetr r Z stmt_node�itemZstmtZlocZidentr r r � transform5 s*
zFixMetaclass.transformN)�__name__�
__module__�__qualname__ZPATTERNr) r r r r r / s r N)�__doc__Zlib2to3r Zlib2to3.fixer_utilr r r r r r Zlib2to3.pygramr Zlibfuturize.fixer_utilr
r r ZBaseFixr r r r r �<module> s $