ó
    Ñ]jÚ  ã                  ó®   • S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJrJrJr  SSKJrJr  \(       a  SS	KJr  SS
KJr  SS jrSS jrS rS rg)z;
Boilerplate functions used in defining binary operations.
é    )Úannotations)Úwraps)ÚTYPE_CHECKING)Úitem_from_zerodim)Úis_matching_na)ÚABCExtensionArrayÚABCIndexÚ	ABCSeries)Úensure_wrapped_if_datetimelikeÚsanitize_array)ÚCallable)ÚFc                ó   ^ • SU 4S jjnU$ )z‡
Boilerplate for pandas conventions in arithmetic and comparison methods.

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

Returns
-------
decorator
c                ó   >• [        U T5      $ )N)Ú_unpack_zerodim_and_defer)ÚmethodÚnames    €ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/ops/common.pyÚwrapperÚ)unpack_zerodim_and_defer.<locals>.wrapper+   s   ø€ Ü(¨°Ó6Ð6ó    )r   r   Úreturnr   © )r   r   s   ` r   Úunpack_zerodim_and_deferr      s   ø€ ÷7ð €Nr   c                ó\   ^ ^• UR                  S5      S;   m[        T 5      UU 4S j5       nU$ )a!  
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
Ú_)ÚorÚxorÚandÚrorÚrxorÚrandc                ó  >• [        USS 5      nUb  X R                  :”  a  [        $ [        U5      n[	        U [
        5      (       a3  [	        U[        5      (       a  T(       d  [        US 5      n[        U5      nT" X5      $ )NÚ__pandas_priority__)	Úgetattrr$   ÚNotImplementedr   Ú
isinstancer   Úlistr   r   )ÚselfÚotherÚprioÚ
is_logicalr   s      €€r   Ú
new_methodÚ-_unpack_zerodim_and_defer.<locals>.new_methodC   su   ø€ ä�uÐ3°TÓ:ˆØÑØ×.Ñ.Ó.ä%Ð%ä! %Ó(ˆä�tÔ.×/Ñ/Ü˜5¤$×'Ñ'Þô # 5¨$Ó/ˆEÜ2°5Ó9ˆEá�dÓ"Ð"r   )Ústripr   )r   r   r-   r,   s   `  @r   r   r   1   s6   ù€ ð  —‘˜C“Ð$OÑO€Jä
ˆ6ƒ]õ#ó ð#ð* Ðr   c                ón   • [        U[        [        45      (       a  [        X5      nU$ U R                  nU$ )zæ
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_namer4   \   s7   € ô �%œ)¤XÐ.×/Ñ/Ü  Ó-ˆð €Kð �y‰yˆØ€Kr   c                óê  • [        U S5      n[        US5      nU(       a`  U(       aY   U R                  UR                  :X  a  U R                  $ [        U R                  UR                  5      (       a  U R                  $ gU(       a  U R                  $ U(       a  UR                  $ g! [         a6    [        U R                  UR                  5      (       a  U R                  s $  g[         a     gf = f)ao  
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   r1   r1   r   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' Á0B' Â';C2Ã&	C2Ã1C2N)r   Ústrr   zCallable[[F], F])r   r   r   r=   r   r   )Ú__doc__Ú
__future__r   Ú	functoolsr   Útypingr   Úpandas._libs.libr   Úpandas._libs.missingr   Úpandas.core.dtypes.genericr   r	   r
   Úpandas.core.constructionr   r   Úcollections.abcr   Úpandas._typingr   r   r   r4   r1   r   r   r   Ú<module>rH      sJ   ðñõ #å Ý  å .Ý /÷ñ ÷ö
 Ý(å ôô&(òVó,+r   