File: //lib64/python3.9/lib2to3/fixes/__pycache__/fix_dict.cpython-39.opt-2.pyc
a
    �DOg�  �                   @   sf   d dl mZ d dl mZ d dl mZ d dlmZmZmZ d dl mZ ejdhB Z	G dd� dej
�Zd	S )
�   )�pytree)�patcomp)�
fixer_base)�Name�Call�Dot)�
fixer_util�iterc                   @   s@   e Zd ZdZdZdd� ZdZe�e�Z	dZ
e�e
�Zdd� Zd	S )
�FixDictTa  
    power< head=any+
         trailer< '.' method=('keys'|'items'|'values'|
                              'iterkeys'|'iteritems'|'itervalues'|
                              'viewkeys'|'viewitems'|'viewvalues') >
         parens=trailer< '(' ')' >
         tail=any*
    >
    c           
   	   C   s  |d }|d d }|d }| j }|j}|�d�}|�d�}	|sD|	rP|dd � }dd	� |D �}d
d	� |D �}| o|| �||�}
|t�|jt� t||j	d�g�|d �
� g }t�|j|�}|
s�|	s�d
|_	tt|r�dnd�|g�}|r�t�|j|g| �}|j	|_	|S )N�head�method�    �tailr	   �view�   c                 S   s   g | ]}|� � �qS � ��clone��.0�nr   r   �./usr/lib64/python3.9/lib2to3/fixes/fix_dict.py�
<listcomp>A   �    z%FixDict.transform.<locals>.<listcomp>c                 S   s   g | ]}|� � �qS r   r   r   r   r   r   r   B   r   )�prefixZparens� �list)
�syms�value�
startswith�in_special_contextr   ZNodeZtrailerr   r   r   r   Zpowerr   )
�self�node�resultsr   r   r   r   Zmethod_name�isiterZisviewZspecial�args�newr   r   r   �	transform6   s:    
���
�zFixDict.transformz3power< func=NAME trailer< '(' node=any ')' > any* >zmfor_stmt< 'for' any 'in' node=any ':' any* >
            | comp_for< 'for' any 'in' node=any any* >
         c                 C   s�   |j d u rdS i }|j j d ur^| j�|j j |�r^|d |u r^|rN|d jtv S |d jtjv S |sfdS | j�|j |�o�|d |u S )NFr"