ACC SHELL
Ñò
sÄMc @ si d Z d d k l Z d d k l Z d d k l Z d d k l Z l Z d e i f d „ ƒ YZ
d S( s& Fixer for has_key().
Calls to .has_key() methods are expressed in terms of the 'in'
operator:
d.has_key(k) -> k in d
CAVEATS:
1) While the primary target of this fixer is dict.has_key(), the
fixer will change any has_key() method call, regardless of its
class.
2) Cases like this will not be converted:
m = d.has_key
if m(k):
...
Only *calls* to has_key() are converted. While it is possible to
convert the above to something like
m = d.__contains__
if m(k):
...
this is currently not done.
i ( t pytree( t token( t
fixer_base( t Namet parenthesizet FixHasKeyc B s e Z d Z d „ Z RS( s•
anchor=power<
before=any+
trailer< '.' 'has_key' >
trailer<
'('
( not(arglist | argument<any '=' any>) arg=any
| arglist<(not argument<any '=' any>) arg=any ','>
)
')'
>
after=any*
>
|
negation=not_test<
'not'
anchor=power<
before=any+
trailer< '.' 'has_key' >
trailer<
'('
( not(arglist | argument<any '=' any>) arg=any
| arglist<(not argument<any '=' any>) arg=any ','>
)
')'
>
>
>
c C sv | p t ‚ | i } | i i | i j o | i i | i ƒ o d S| i d ƒ } | d } | i } g } | d D] } | | i
ƒ qy ~ } | d i
ƒ }
| i d ƒ } | o+ g } | D] } | | i
ƒ qÆ ~ } n |
i | i | i | i | i
| i | i | i f j o t |
ƒ }
n t | ƒ d j o | d } n t i | i | ƒ } d | _ t d d
d ƒ}
| o1 t d d
d ƒ} t i | i | |
f ƒ }
n t i | i |
|
| f ƒ } | o2 t | ƒ } t i | i | f t | ƒ ƒ } n | i i | i | i | i | i | i | i | i | i | i f j o t | ƒ } n | | _ | S( Nt negationt anchort beforet argt afteri i u u int prefixu not( t AssertionErrort symst parentt typet not_testt patternt matcht Nonet getR t clonet
comparisont and_testt or_testt testt lambdeft argumentR t lenR t Nodet powerR t comp_opt tuplet exprt xor_exprt and_exprt
shift_exprt
arith_exprt termt factor( t selft nodet resultsR
R R R t _[1]t nR R R
t _[2]t n_opt n_nott new( ( s/ /usr/lib/python2.6/lib2to3/fixes/fix_has_key.pyt transformG sF
++" & ( t __name__t
__module__t PATTERNR1 ( ( ( s/ /usr/lib/python2.6/lib2to3/fixes/fix_has_key.pyR ' s N( t __doc__t R t pgen2R R t
fixer_utilR R t BaseFixR ( ( ( s/ /usr/lib/python2.6/lib2to3/fixes/fix_has_key.pyt <module> s
ACC SHELL 2018