f| V ddlmZddlmZddlmZmZGddejZdS))pytree) fixer_base)Name parenthesizeceZdZdZdZdZdS) FixHasKeyTa anchor=power< before=any+ trailer< '.' 'has_key' > trailer< '(' ( not(arglist | argument) arg=any ','> ) ')' > after=any* > | negation=not_test< 'not' anchor=power< before=any+ trailer< '.' 'has_key' > trailer< '(' ( not(arglist | argument) arg=any ','> ) ')' > > > c J|j}|jj|jkr!|j|jrdS|d}|d}|j}d|dD}|d}|d} | r d| D} |j|j |j|j |j |j |j |jfvrt|}t!|dkr |d }nt#j|j|}d |_t)d d } |r-t)d d } t#j|j| | f} t#j|j || |f} | r:t| } t#j|j| ft-| z} |jj|j |j|j|j|j|j|j|j|jf vrt| } || _| S)Nnegationanchorc6g|]}|Sclone.0ns @/opt/alt/python311/lib64/python3.11/lib2to3/fixes/fix_has_key.py z'FixHasKey.transform..Rs 777!''))777beforeargafterc6g|]}|Sr rrs rrz'FixHasKey.transform..Vs ...1QWWYY...r in)prefixnot)symsparenttypenot_testpatternmatchgetrr comparisonand_testor_testtestlambdefargumentrlenrNodepowerrcomp_optupleexprxor_exprand_expr shift_expr arith_exprtermfactor) selfnoderesultsr r r rrrrn_opn_notnews r transformzFixHasKey.transformGsy K  - - L  t{ + + .4;;z**"77WX%6777en""$$ G$$  /.....E 8  dit}N N Ns##C v;;!  AYFF[V44F D%%%  <s+++E;t|eT];;Dk$/Cv+>??  As##C+dj3&5<<*?@@C ; DM $ t $ $ TZ 9 9 9s##C  rN)__name__ __module__ __qualname__ BM_compatiblePATTERNr?r rrrr&s/MG<&&&&&rrN)rr fixer_utilrrBaseFixrr rrrHs:++++++++GGGGG "GGGGGr