ðÕYfH ã @ sC d Z d d l m Z d d l m Z Gd 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 @ 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)ÚselfZnodeZresultsZnames_insertedZtestlistr Znew_argsÚiteratorÚidxÚargZatom© r úA/opt/alt/python35/lib64/python3.5/lib2to3/fixes/fix_isinstance.pyÚ transform s*
!0
zFixIsinstance.transformN)Ú__name__Ú
__module__Ú__qualname__Z
BM_compatibleZPATTERNZ run_orderr r r r r r s r N)Ú__doc__Ú r Z
fixer_utilr ZBaseFixr r r r r Ú