й¼]– ã @ sc d d l m Z d d l m Z d d l m Z d d l m Z m Z Gd d „ d e j ƒ Z d S)é )Úpytree)Útoken)Ú
fixer_base)ÚNameÚparenthesizec @ s( e Z d Z d Z d Z d d „ Z d S)Ú FixHasKeyTa•
anchor=power<
before=any+
trailer< '.' 'has_key' >
trailer<
'('
( not(arglist | argument) arg=any
| arglist<(not argument) arg=any ','>
)
')'
>
after=any*
>
|
negation=not_test<
'not'
anchor=power<
before=any+
trailer< '.' 'has_key' >
trailer<
'('
( not(arglist | argument) arg=any
| arglist<(not argument) arg=any ','>
)
')'
>
>
>
c
C s" | j } | j j | j k r7 | j j | j ƒ r7 d S| j d ƒ } | d } | j } d d „ | d Dƒ } | d j ƒ } | j d ƒ } | r¨ d d „ | Dƒ } | j | j | j | j
| j | j | j
| j f k rí t | ƒ } t | ƒ d k r| d
} n t j | j | ƒ } d | _ t d d
d ƒ}
| rot d d
d ƒ} t j | j | |
f ƒ }
t j | j | |
| f ƒ } | rÁt | ƒ } t j | j | f t | ƒ ƒ } | j j | j | j | j | j | j | j | j | j | j f k rt | ƒ } | | _ | S)NÚnegationÚanchorc S s g | ] } | j ƒ ‘ q S© )Úclone)Ú.0Únr
r
ú0/opt/alt/python35/lib64/python3.5/fix_has_key.pyú
S s z'FixHasKey.transform..ÚbeforeÚargÚafterc S s g | ] } | j ƒ ‘ q Sr
)r )r r
r
r
r r W s é é ú ÚinÚprefixÚnot)ÚsymsÚparentÚtypeZnot_testÚpatternÚmatchÚgetr r Z
comparisonZand_testZor_testZtestZlambdefÚargumentr Úlenr ZNodeZpowerr Zcomp_opÚtupleÚexprZxor_exprZand_exprZ
shift_exprZ
arith_exprZtermZfactor)
ÚselfZnodeÚresultsr r r r r r r Zn_opZn_notÚnewr
r
r Ú transformH sD
!
" zFixHasKey.transformN)Ú__name__Ú
__module__Ú__qualname__Z
BM_compatibleZPATTERNr&