Ë
    #´˜jb  ã                   ód   — d Z ddlZddlmZ ddlmZmZmZm	Z	 d„ Z
 G d„ dej                  «      Zy)aÐ  Fixer for operator functions.

operator.isCallable(obj)       -> callable(obj)
operator.sequenceIncludes(obj) -> operator.contains(obj)
operator.isSequenceType(obj)   -> isinstance(obj, collections.abc.Sequence)
operator.isMappingType(obj)    -> isinstance(obj, collections.abc.Mapping)
operator.isNumberType(obj)     -> isinstance(obj, numbers.Number)
operator.repeat(obj, n)        -> operator.mul(obj, n)
operator.irepeat(obj, n)       -> operator.imul(obj, n)
é    N)Ú
fixer_base)ÚCallÚNameÚStringÚtouch_importc                 ó   ‡ — ˆ fd„}|S )Nc                 ó   •— ‰| _         | S ©N)Ú
invocation)ÚfÚss    €ú,lib/python3.12/lib2to3/fixes/fix_operator.pyÚdeczinvocation.<locals>.dec   s   ø€ ØˆŒØˆó    © )r   r   s   ` r   r   r      s   ø€ ôð €Jr   c                   ó  — e Zd ZdZdZdZdZd eee¬«      z  Zd„ Z	 e
d«      d	„ «       Z e
d
«      d„ «       Z e
d«      d„ «       Z e
d«      d„ «       Z e
d«      d„ «       Z e
d«      d„ «       Z e
d«      d„ «       Zd„ Zd„ Zd„ Zy)ÚFixOperatorTÚprezµ
              method=('isCallable'|'sequenceIncludes'
                     |'isSequenceType'|'isMappingType'|'isNumberType'
                     |'repeat'|'irepeat')
              z'(' obj=any ')'z¼
              power< module='operator'
                trailer< '.' %(methods)s > trailer< %(obj)s > >
              |
              power< %(methods)s trailer< %(obj)s > >
              )ÚmethodsÚobjc                 ó>   — | j                  ||«      }|�	 |||«      S y r
   )Ú_check_method)ÚselfÚnodeÚresultsÚmethods       r   Ú	transformzFixOperator.transform+   s,   € Ø×#Ñ# D¨'Ó2ˆØÐÙ˜$ Ó(Ð(ð r   zoperator.contains(%s)c                 ó(   — | j                  ||d«      S )NÚcontains©Ú_handle_rename©r   r   r   s      r   Ú_sequenceIncludeszFixOperator._sequenceIncludes0   s   € à×"Ñ" 4¨°*Ó=Ð=r   zcallable(%s)c                 ól   — |d   }t        t        d«      |j                  «       g|j                  ¬«      S )Nr   Úcallable©Úprefix)r   r   Úcloner'   )r   r   r   r   s       r   Ú_isCallablezFixOperator._isCallable4   s+   € à�e‰nˆÜ”D˜Ó$ s§y¡y£{ m¸D¿K¹KÔHÐHr   zoperator.mul(%s)c                 ó(   — | j                  ||d«      S )NÚmulr    r"   s      r   Ú_repeatzFixOperator._repeat9   s   € à×"Ñ" 4¨°%Ó8Ð8r   zoperator.imul(%s)c                 ó(   — | j                  ||d«      S )NÚimulr    r"   s      r   Ú_irepeatzFixOperator._irepeat=   s   € à×"Ñ" 4¨°&Ó9Ð9r   z(isinstance(%s, collections.abc.Sequence)c                 ó*   — | j                  ||dd«      S )Núcollections.abcÚSequence©Ú_handle_type2abcr"   s      r   Ú_isSequenceTypezFixOperator._isSequenceTypeA   s   € à×$Ñ$ T¨7Ð4EÀzÓRÐRr   z'isinstance(%s, collections.abc.Mapping)c                 ó*   — | j                  ||dd«      S )Nr1   ÚMappingr3   r"   s      r   Ú_isMappingTypezFixOperator._isMappingTypeE   s   € à×$Ñ$ T¨7Ð4EÀyÓQÐQr   zisinstance(%s, numbers.Number)c                 ó*   — | j                  ||dd«      S )NÚnumbersÚNumberr3   r"   s      r   Ú_isNumberTypezFixOperator._isNumberTypeI   s   € à×$Ñ$ T¨7°I¸xÓHÐHr   c                 óB   — |d   d   }||_         |j                  «        y )Nr   r   )ÚvalueÚchanged)r   r   r   Únamer   s        r   r!   zFixOperator._handle_renameM   s"   € Ø˜Ñ" 1Ñ%ˆØˆŒØ�‰Õr   c                 óÆ   — t        d ||«       |d   }|j                  «       t        ddj                  ||g«      z   «      g}t	        t        d«      ||j                  ¬«      S )Nr   z, Ú.Ú
isinstancer&   )r   r(   r   Újoinr   r   r'   )r   r   r   ÚmoduleÚabcr   Úargss          r   r4   zFixOperator._handle_type2abcR   sV   € Ü�T˜6 4Ô(Ø�e‰nˆØ—	‘	“œV D¨3¯8©8°V¸S°MÓ+BÑ$BÓCÐDˆÜ”D˜Ó&¨°T·[±[ÔAÐAr   c                 óü   — t        | d|d   d   j                  z   «      }t        |t        j                  j
                  «      r9d|v r|S t        |d   «      f}|j                  |z  }| j                  |d|z  «       y )NÚ_r   r   rE   r   zYou should use '%s' here.)	Úgetattrr>   rC   ÚcollectionsrF   ÚCallableÚstrr   Úwarning)r   r   r   r   ÚsubÚinvocation_strs         r   r   zFixOperator._check_methodX   s|   € Ü˜˜s W¨XÑ%6°qÑ%9×%?Ñ%?Ñ?Ó@ˆÜ�fœkŸo™o×6Ñ6Ô7Ø˜7Ñ"Ø�ä˜7 5™>Ó*Ð,�Ø!'×!2Ñ!2°SÑ!8�Ø—‘˜TÐ#>ÀÑ#OÔPØr   N)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚorderr   r   ÚdictÚPATTERNr   r   r#   r)   r,   r/   r5   r8   r<   r!   r4   r   r   r   r   r   r      s  „ Ø€MØ€Eð€Gð
 €Cðñ
  ¨cÔ2ñ3€Gò)ñ
 Ð'Ó(ñ>ó )ð>ñ �ÓñIó  ðIñ Ð"Ó#ñ9ó $ð9ñ Ð#Ó$ñ:ó %ð:ñ Ð:Ó;ñSó <ðSñ Ð9Ó:ñRó ;ðRñ Ð0Ó1ñIó 2ðIòò
Bó	r   r   )Ú__doc__Úcollections.abcrK   Úlib2to3r   Úlib2to3.fixer_utilr   r   r   r   r   ÚBaseFixr   r   r   r   Ú<module>r]      s3   ðñ	ó õ ß ?Ó ?òôG�*×$Ñ$õ Gr   