File: //opt/alt/python35/lib64/python3.5/lib2to3/fixes/__pycache__/fix_isinstance.cpython-35.opt-2.pyc
���]H  �               @   s=   d  d l  m Z d  d l m Z Gd d �  d e j � Z d S)�   )�
fixer_base)�tokenc               @   s.   e  Z d  Z d Z d Z d Z d d �  Z d S)�
FixIsinstanceTz�
    power<
        'isinstance'
        trailer< '(' arglist< any ',' atom< '('
            args=testlist_gexp< any+ >
        ')' > > ')' >
    >
    �   c             C   sU  t  �  } | d } | j } g  } t | � } x� | D]� \ } }	 |	 j t j k r� |	 j | k r� | t | � d k  r� | | d j t j k r� t	 | � q5 q5 | j
 |	 � |	 j t j k r5 | j |	 j � q5 W| r� | d j t j k r� | d =t | � d k r7| j }
 |
 j
 | d _
 |
 j | d � n | | d  d  � <| j �  d  S)N�args�   �    ���r	   )�setZchildren�	enumerate�typer   �NAME�value�len�COMMA�next�append�add�parent�prefix�replaceZchanged)�selfZnode�resultsZnames_insertedZtestlistr   Znew_args�iterator�idx�argZatom� r   �3/opt/alt/python35/lib64/python3.5/fix_isinstance.py�	transform   s*    	
	!0
	zFixIsinstance.transformN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNZ	run_orderr   r   r   r   r   r      s   r   N)� r   Z
fixer_utilr   ZBaseFixr   r   r   r   r   �<module>   s