grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \| ã@s>ddlmZddlmZddlmZmZGdd„dejƒZdS)é)Úpytree)Ú fixer_base)ÚNameÚ parenthesizec@seZdZdZdZdd„ZdS)Ú 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 Cs||j}|jj|jkr&|jj|jƒr&dS|jdƒ}|d}|j}dd„|dDƒ}|djƒ}|jdƒ} | rxdd„| Dƒ} |j|j |j|j |j |j |j |jfkr¦t|ƒ}t|ƒd kr¼|d }ntj|j|ƒ}d |_td d d �} |rþtdd d �} tj|j| | fƒ} tj|j || |fƒ} | �r8t| ƒ} tj|j| ft| ƒƒ} |jj|j |j|j|j|j|j|j|j|jf k�rrt| ƒ} || _| S)NÚnegationÚanchorcSsg|] }|jƒ‘qS©)Úclone)Ú.0Únr r ú1/usr/lib64/python3.6/lib2to3/fixes/fix_has_key.pyú Rsz'FixHasKey.transform..ÚbeforeÚargÚaftercSsg|] }|jƒ‘qSr )r )r r r r r rVsééú Úin)ÚprefixÚnot)ÚsymsÚparentÚtypeZnot_testÚpatternÚmatchÚgetrr Z comparisonZand_testZor_testZtestZlambdefZargumentrÚlenrZNodeZpowerrZcomp_opÚtupleÚexprZxor_exprZand_exprZ shift_exprZ arith_exprZtermZfactor) ÚselfZnodeZresultsrrrrrrrZn_opZn_notÚnewr r r Ú transformGsD       zFixHasKey.transformN)Ú__name__Ú __module__Ú __qualname__Z BM_compatibleZPATTERNr#r r r r r&srN)ÚrrZ fixer_utilrrZBaseFixrr r r r Ú!s