]@sddlmZddlmZddlmZddlmZddlmZmZm Z m Z m Z m Z ddlmZej dhBZGdd d ejZd S) )pytree)patcomp)token) fixer_base)NameCallLParenRParenArgListDot) fixer_utiliterc@s^eZdZdZdZddZdZejeZ dZ eje Z ddZ d S) FixDictTa power< head=any+ trailer< '.' method=('keys'|'items'|'values'| 'iterkeys'|'iteritems'|'itervalues'| 'viewkeys'|'viewitems'|'viewvalues') > parens=trailer< '(' ')' > tail=any* > c Csn|d}|dd}|d}|j}|j}|jd}|jd} |s^| rn|dd}dd |D}d d |D}| o|j||} |tj|jtt|d |j g|d j g} tj|j | } | p | s<d | _ t t|r*dnd| g} |r^tj|j | g|} |j | _ | S)Nheadmethodtailr viewcSsg|]}|jqS)clone).0nrr-/opt/alt/python35/lib64/python3.5/fix_dict.py Bs z%FixDict.transform..cSsg|]}|jqSr)r)rrrrrrCs prefixZparenslist) symsvalue startswithin_special_contextrZNodeZtrailerr rrrZpowerr) selfnoderesultsrrrrZ method_nameisiterZisviewZspecialargsnewrrr transform7s2        $ zFixDict.transformz3power< func=NAME trailer< '(' node=any ')' > any* >zmfor_stmt< 'for' any 'in' node=any ':' any* > | comp_for< 'for' any 'in' node=any any* > cCs|jdkrdSi}|jjdk r|jj|jj|r|d|kr|rm|djtkS|djtjkS|sdS|jj|j|o|d|kS)NFr#func)parentp1matchr iter_exemptr consuming_callsp2)r"r#r%r$rrrr![szFixDict.in_special_contextN) __name__ __module__ __qualname__Z BM_compatibleZPATTERNr(ZP1rZcompile_patternr+ZP2r/r!rrrrr*s   rN)rrrZpgen2rrr rrrr r r r.r-ZBaseFixrrrrrs.