Ë
    #´˜j|  ã                   óZ   — d Z ddlmZ ddlmZ ddlmZmZ  G d„ dej                  «      Zy)a&  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.
é   )Úpytree)Ú
fixer_base)ÚNameÚparenthesizec                   ó   — e Zd ZdZdZd„ Zy)Ú	FixHasKeyTa•  
    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           
      óh  — |sJ ‚| j                   }|j                  j                  |j                  k(  r&| j                  j                  |j                  «      ry |j                  d«      }|d   }|j                  }|d   D �cg c]  }|j                  «       ‘Œ }}|d   j                  «       }	|j                  d«      }
|
r|
D �cg c]  }|j                  «       ‘Œ }
}|	j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  fv rt        |	«      }	t!        |«      dk(  r|d   }n t#        j$                  |j&                  |«      }d|_        t)        d	d¬
«      }|r/t)        dd¬
«      }t#        j$                  |j*                  ||f«      }t#        j$                  |j                  |	||f«      }|
r8t        |«      }t#        j$                  |j&                  |ft-        |
«      z   «      }|j                  j                  |j                  |j.                  |j0                  |j2                  |j4                  |j6                  |j8                  |j:                  |j&                  f	v rt        |«      }||_        |S c c}w c c}w )NÚnegationÚanchorÚbeforeÚargÚafteré   é    Ú Úin)ÚprefixÚnot)ÚsymsÚparentÚtypeÚnot_testÚpatternÚmatchÚgetr   ÚcloneÚ
comparisonÚand_testÚor_testÚtestÚlambdefÚargumentr   Úlenr   ÚNodeÚpowerr   Úcomp_opÚtupleÚexprÚxor_exprÚand_exprÚ
shift_exprÚ
arith_exprÚtermÚfactor)ÚselfÚnodeÚresultsr   r
   r   r   Únr   r   r   Ún_opÚn_notÚnews                 ú+lib/python3.12/lib2to3/fixes/fix_has_key.pyÚ	transformzFixHasKey.transformG   s&  € ÙˆˆwØ�y‰yˆØ�K‰K×Ñ §¡Ò-Ø�L‰L×Ñ˜tŸ{™{Ô+ð Ø—;‘;˜zÓ*ˆØ˜Ñ"ˆØ—‘ˆØ%,¨XÒ%6Ó7Ñ%6 �!—'‘'•)Ð%6ˆÐ7Ø�e‰n×"Ñ"Ó$ˆØ—‘˜GÓ$ˆÙÙ(-Ó.© 1�Q—W‘W•Y¨ˆEÐ.Ø�8‰8˜Ÿ™¨¯©¸¿¹ØŸ™ d§i¡i°·±¸t¿}¹}ðNñ Nä˜sÓ#ˆCÜˆv‹;˜!ÒØ˜A‘Y‰Fä—[‘[ §¡¨VÓ4ˆFØˆŒÜ�D Ô%ˆÙÜ˜ sÔ+ˆEÜ—;‘;˜tŸ|™|¨e°T¨]Ó;ˆDÜ�k‰k˜$Ÿ/™/¨C°°vÐ+>Ó?ˆÙÜ˜sÓ#ˆCÜ—+‘+˜dŸj™j¨3¨&´5¸³<Ñ*?Ó@ˆCØ�;‰;×Ñ §¡°·±¸D¿M¹MØ $§¡¨t¯©Ø $§¡°·±Ø $§¡¨T¯Z©Zð 9ñ 9ô ˜sÓ#ˆCØˆŒ
Øˆ
ùò7 8ùò /s   ÂJ*ÃJ/N)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNr7   © ó    r6   r   r   &   s   „ Ø€Mð€Gó<&r>   r   N)	Ú__doc__Ú r   r   Ú
fixer_utilr   r   ÚBaseFixr   r=   r>   r6   Ú<module>rC      s)   ðñõ: Ý ß +ôG�
×"Ñ"õ Gr>   