§
    Ñ! 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dS )z;
Boilerplate functions used in defining binary operations.
é    )Úannotations)Úwraps)ÚTYPE_CHECKINGÚCallable)Úitem_from_zerodim)Úis_matching_na)ÚABCIndexÚ	ABCSeries)ÚFÚnameÚstrÚreturnúCallable[[F], F]c                ó   ‡ — dˆ fd„}|S )z§
    Boilerplate for pandas conventions in arithmetic and comparison methods.

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

    Returns
    -------
    decorator
    Úmethodr   r   c                ó$   •— t          | ‰¦  «        S )N)Ú_unpack_zerodim_and_defer)r   r   s    €úPc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pandas/core/ops/common.pyÚwrapperz)unpack_zerodim_and_defer.<locals>.wrapper%   s   ø€ Ý(¨°Ñ6Ô6Ð6ó    )r   r   r   r   © )r   r   s   ` r   Úunpack_zerodim_and_deferr      s(   ø€ ð7ð 7ð 7ð 7ð 7ð 7ð €Nr   c                ó˜   ‡ ‡— |                      d¦  «                             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        k    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Ô0ð 	*µZÀÅyÑ5QÔ5Qð 	*àå˜5Ð"7¸Ñ>Ô>ˆDØÐØ˜$Ô2Ò2Ð2å)Ð)å! %Ñ(Ô(ˆàˆv�d˜EÑ"Ô"Ð"r   )ÚremoveprefixÚremovesuffixr   )r   r   Ústripped_namer*   r)   s   `   @r   r   r   +   sh   øø€ ð  ×%Ò% dÑ+Ô+×8Ò8¸Ñ>Ô>€MØÐBÐB€Få
ˆ6�]„]ð#ð #ð #ð #ð #ñ „]ð#ð Ðr   c                ón   — t          |t          t          f¦  «        rt          | |¦  «        }n| 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_namer2   Q   s8   € õ �%�)¥XÐ.Ñ/Ô/ð Ý   uÑ-Ô-ˆˆàŒyˆØ€Kr   c                óh  — t          | d¦  «        }t          |d¦  «        }|r}|r{	 | j        |j        k    r| j        S t          | j        |j        ¦  «        r| j        S dS # t          $ r' t          | j        |j        ¦  «        r	| j        cY S Y dS t          $ r Y dS w xY w|r| j        S |r|j        S dS )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�à�tøÝð 	ð 	ð 	å˜aœf a¤fÑ-Ô-ð Ø”v���Ø�4�4Ýð 	ð 	ð 	à�4�4ð	øøøð 
ð ØŒvˆØ	ð ØŒvˆØˆ4s   ¦A  ½ A  Á +BÂ	BÂBN)r   r   r   r   )r   r   )Ú__doc__Ú
__future__r   Ú	functoolsr   Útypingr   r   Úpandas._libs.libr   Úpandas._libs.missingr   Úpandas.core.dtypes.genericr	   r
   Úpandas._typingr   r   r   r2   r/   r   r   r   ú<module>rC      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .Ø /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð
 ð !Ø Ð Ð Ð Ð Ð ðð ð ð ð&#ð #ð #ð #ðLð ð ð,+ð +ð +ð +ð +r   