
    ZQdH                     H    d Z ddlmZ ddlmZ  G d dej                  ZdS )a,  Fixer that cleans up a tuple argument to isinstance after the tokens
in it were fixed.  This is mainly used to remove double occurrences of
tokens as a leftover of the long -> int / unicode -> str conversion.

eg.  isinstance(x, (int, long)) -> isinstance(x, (int, int))
       -> isinstance(x, int)
   )
fixer_base)tokenc                        e Zd ZdZdZdZd ZdS )FixIsinstanceTz
    power<
        'isinstance'
        trailer< '(' arglist< any ',' atom< '('
            args=testlist_gexp< any+ >
        ')' > > ')' >
    >
       c                    t                      }|d         }|j        }g }t          |          }|D ]\  }}	|	j        t          j        k    rN|	j        |v rE|t          |          dz
  k     r.||dz            j        t          j        k    rt          |           gh|
                    |	           |	j        t          j        k    r|                    |	j                   |r|d         j        t          j        k    r|d= t          |          dk    r6|j        }
|
j        |d         _        |
                    |d                    d S ||d d <   |                                 d S )Nargs       )setchildren	enumeratetyper   NAMEvaluelenCOMMAnextappendaddparentprefixreplacechanged)selfnoderesultsnames_insertedtestlistr	   new_argsiteratoridxargatoms              3/usr/lib/python3.11/lib2to3/fixes/fix_isinstance.py	transformzFixIsinstance.transform   sO   6? T??  	2 	2HCx5:%%#)~*E*ETQ&&4a=+=+L+LNNN$$$8uz))"&&sy111 	)U[88x==A?D!%HQKLL!%%%%%DGLLNNNNN    N)__name__
__module____qualname__BM_compatiblePATTERN	run_orderr'    r(   r&   r   r      s6        MG I    r(   r   N)__doc__ r   
fixer_utilr   BaseFixr   r/   r(   r&   <module>r4      sl                $ $ $ $ $J& $ $ $ $ $r(   