File: //lib64/python3.9/lib2to3/fixes/__pycache__/fix_metaclass.cpython-39.opt-2.pyc
a
    �DOg   �                   @   sr   d dl mZ d dlmZ d dlmZmZmZ dd� Zdd� Z	dd	� Z
d
d� Zdd
� Zdd� Z
G dd� dej�ZdS )�   )�
fixer_base)�token)�syms�Node�Leafc                 C   sz   | j D ]n}|jtjkr"t|�  S |jtjkr|j r|j d }|jtjkr|j r|j d }t|t�r|j	dkr dS qdS )N�    �
__metaclass__TF)
�children�typer   �suite�
has_metaclass�simple_stmt�	expr_stmt�
isinstancer   �value)�parent�node�	expr_nodeZ	left_side� r   �3/usr/lib64/python3.9/lib2to3/fixes/fix_metaclass.pyr      s    
�r   c                 C   s�   | j D ]}|jtjkr d S qt| j �D ]\}}|jtjkr( qJq(td��ttjg �}| j |d d � r�| j |d  }|�	|�
� � |��  qV| �	|� |}d S )NzNo class suite and no ':'!�   )r	   r
   r   r   �	enumerater   �COLON�
ValueErrorr   �append_child�clone�remove)�cls_noder   �ir   �	move_noder   r   r   �fixup_parse_tree-   s    
r    c           
      C   s�   t |j�D ]\}}|jtjkr
 q(q
d S |��  ttjg �}ttj	|g�}|j|d � rz|j| }|�
|�� � |��  qJ| �||� |jd jd }|jd jd }	|	j
|_
d S )Nr   )r   r	   r
   r   �SEMIr   r   r   r   r
   r   r   �insert_child�prefix)
r   r   Z	stmt_nodeZsemi_indr   Znew_exprZnew_stmtr   Z	new_leaf1Z	old_leaf1r   r   r   �fixup_simple_stmtG   s    
r$   c                 C   s*   | j r&| j d jtjkr&| j d ��  d S )N���)r	   r
   r   �NEWLINEr   )r   r   r   r   �remove_trailing_newline_   s    r'