î i fHã@sCdZddlmZddlmZGdd„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|ƒ}xª|D]¢\}} | jtjkr¥| j|kr¥|t|ƒdkr×||djtjkr×t |ƒq5q×q5|j | ƒ| jtjkr5|j | jƒq5q5W|r|djtjkr|d=nt|ƒdkr@|j } | j |d_ | j|dƒn||dd…<|jƒdS)NÚargséééÿÿÿÿr )ÚsetZchildrenÚ enumerateÚtyperÚNAMEÚvalueÚlenÚCOMMAÚnextÚappendÚaddÚparentÚprefixÚreplaceZchanged) ÚselfZnodeZresultsZnames_insertedZtestlistrZnew_argsÚiteratorÚidxÚargZatom©rúA/opt/alt/python34/lib64/python3.4/lib2to3/fixes/fix_isinstance.pyÚ transforms*    !0     zFixIsinstance.transformN)Ú__name__Ú __module__Ú __qualname__Z BM_compatibleZPATTERNZ run_orderrrrrrrs rN)Ú__doc__ÚrZ fixer_utilrZBaseFixrrrrrÚ s