î
i fH ã @ 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 s^ 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 q× q5 | j
| ƒ | j t j k r5 | j | j ƒ q5 q5 W| r| d j t j k r| d =n t | ƒ d k r@| 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/python34/lib64/python3.4/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 Ú