ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
V~gc           @   si   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z m Z d e j	 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 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   sI  |  j  } | j j | j k r7 |  j j | j  r7 d  S| j d  } | d } | j } g  | d D] } | j	   ^ qd } | d j	   }	 | j d  }
 |
 r g  |
 D] } | j	   ^ q }
 n  |	 j | j
 | j | j | j | j | j | j f k rt |	  }	 n  t |  d k r*| d } n t j | j |  } d | _ t d	 d
 d } | rt d d
 d } t j | j | | f  } n  t j | j
 |	 | | f  } |
 rt |  } t j | j | f t |
   } n  | j j | j
 | j | j | j | j | j | j | j | j f	 k r<t |  } n  | | _ | S(   Nt   negationt   anchort   beforet   argt   afteri   i    u    u   int   prefixu   not(   t   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   nR   R	   R
   t   n_opt   n_nott   new(    (    s>   /opt/alt/python27/lib64/python2.7/lib2to3/fixes/fix_has_key.pyt	   transformH   sD    	
	#"!	%	(   t   __name__t
   __module__t   Truet   BM_compatiblet   PATTERNR.   (    (    (    s>   /opt/alt/python27/lib64/python2.7/lib2to3/fixes/fix_has_key.pyR   '   s   N(   t   __doc__t    R    t   pgen2R   R   t
   fixer_utilR   R   t   BaseFixR   (    (    (    s>   /opt/alt/python27/lib64/python2.7/lib2to3/fixes/fix_has_key.pyt   <module>   s
   