a XC?hH�@s2dZddlmZddlmZGdd�dej�ZdS)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@s eZdZdZdZdZdd�ZdS)� FixIsinstanceTz� power< 'isinstance' trailer< '(' arglist< any ',' atom< '(' args=testlist_gexp< any+ > ')' > > ')' > > �c Cs�t�}|d}|j}g}t|�}|D]p\}} | jtjkrr| j|vrr|t|�dkr�||djtjkr�t |�q$q$|� | �| jtjkr$|� | j�q$|r�|djtjkr�|d=t|�dkr�|j } | j |d_ | �|d�n||dd�<|��dS)N�args�������)�setZchildren� enumerate�typer�NAME�value�len�COMMA�next�append�add�parent�prefix�replaceZchanged) �selfZnodeZresultsZnames_insertedZtestlistr�new_args�iterator�idx�argZatom�r�A/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_isinstance.py� transforms* $     zFixIsinstance.transformN)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNZ run_orderrrrrrrs rN)�__doc__�rZ fixer_utilrZBaseFixrrrrr�s