Ë
    ¤eh¬  ã                  ó„   — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ ddlmZmZ erddlmZ dd	„Zdd
„Zd„ Zd„ Zy)z;
Boilerplate functions used in defining binary operations.
é    )Úannotations)Úwraps)ÚTYPE_CHECKINGÚCallable)Úitem_from_zerodim)Úis_matching_na)ÚABCIndexÚ	ABCSeries)ÚFc                ó   ‡ — dˆ fd„}|S )z§
    Boilerplate for pandas conventions in arithmetic and comparison methods.

    Parameters
    ----------
    name : str

    Returns
    -------
    decorator
    c                ó   •— t        | ‰«      S )N)Ú_unpack_zerodim_and_defer)ÚmethodÚnames    €úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/core/ops/common.pyÚwrapperz)unpack_zerodim_and_defer.<locals>.wrapper%   s   ø€ Ü(¨°Ó6Ð6ó    )r   r   Úreturnr   © )r   r   s   ` r   Úunpack_zerodim_and_deferr      s   ø€ õ7ð €Nr   c                óz   ‡ ‡— |j                  d«      j                  d«      }|dv Št        ‰ «      ˆˆ fd„«       }|S )aM  
    Boilerplate for pandas conventions in arithmetic and comparison methods.

    Ensure method returns NotImplemented when operating against "senior"
    classes.  Ensure zero-dimensional ndarrays are always unpacked.

    Parameters
    ----------
    method : binary method
    name : str

    Returns
    -------
    method
    Ú__>   ÚeqÚgeÚgtÚleÚltÚnec                óº   •— ‰r!t        | t        «      rt        |t        «      rn$t        |dd «      }|�|| j                  kD  rt
        S t        |«      } ‰| |«      S )NÚ__pandas_priority__)Ú
isinstancer	   r
   Úgetattrr    ÚNotImplementedr   )ÚselfÚotherÚprioÚis_cmpr   s      €€r   Ú
new_methodz-_unpack_zerodim_and_defer.<locals>.new_method>   s[   ø€ á”j ¤xÔ0´ZÀÄyÔ5Qàä˜5Ð"7¸Ó>ˆDØÐØ˜$×2Ñ2Ò2ä)Ð)ä! %Ó(ˆá�d˜EÓ"Ð"r   )ÚremoveprefixÚremovesuffixr   )r   r   Ústripped_namer(   r'   s   `   @r   r   r   +   sI   ù€ ð  ×%Ñ% dÓ+×8Ñ8¸Ó>€MØÐBÐB€Fä
ˆ6ƒ]ô#ó ð#ð Ðr   c                óf   — t        |t        t        f«      rt        | |«      }|S | j                  }|S )a  
    Find the appropriate name to pin to an operation result.  This result
    should always be either an Index or a Series.

    Parameters
    ----------
    left : {Series, Index}
    right : object

    Returns
    -------
    name : object
        Usually a string
    )r!   r
   r	   Ú_maybe_match_namer   )ÚleftÚrightr   s      r   Úget_op_result_namer0   Q   s6   € ô �%œ)¤XÐ.Ô/Ü   uÓ-ˆð €Kð �y‰yˆØ€Kr   c                ó¨  — t        | d«      }t        |d«      }|rU|rS	 | j                  |j                  k(  r| j                  S t        | j                  |j                  «      r| j                  S y|r| j                  S |r|j                  S y# t        $ r1 t        | j                  |j                  «      r| j                  cY S Y yt        $ r Y yw xY w)a«  
    Try to find a name to attach to the result of an operation between
    a and b.  If only one of these has a `name` attribute, return that
    name.  Otherwise return a consensus name if they match or None if
    they have different names.

    Parameters
    ----------
    a : object
    b : object

    Returns
    -------
    name : str or None

    See Also
    --------
    pandas.core.common.consensus_name_attr
    r   N)Úhasattrr   r   Ú	TypeErrorÚ
ValueError)ÚaÚbÚa_hasÚb_hass       r   r-   r-   g   s´   € ô( �A�vÓ€EÜ�A�vÓ€EÙ‘ð	Ø�v‰v˜Ÿ™ÒØ—v‘v�Ü §¡¨¯©Ô/à—v‘v�àñ 
Ø�v‰vˆÙ	Ø�v‰vˆØøô ò 	ä˜aŸf™f a§f¡fÔ-Ø—v‘v’ÙÜò 	áð	ús   ž$B Á+B Â5CÃCÃCN)r   Ústrr   zCallable[[F], F])r   r9   )Ú__doc__Ú
__future__r   Ú	functoolsr   Útypingr   r   Úpandas._libs.libr   Úpandas._libs.missingr   Úpandas.core.dtypes.genericr	   r
   Úpandas._typingr   r   r   r0   r-   r   r   r   ú<module>rB      sA   ðñõ #å ÷õ
 /Ý /÷ñ
 Ý óó&#òLó,+r   