Ë
    u™ãjU  ã                  ó,  — d Z ddlmZ ddlZddlZddlmZmZmZ ddl	Z
ddlmZ ddlmZ ddlmZmZ ddlmZmZmZ dd	lmZmZmZmZmZ erdd
lmZ ddlmZm Z m!Z!  e"e
jF                  e
jH                  e
jJ                  e
jL                  h«      Z'ejP                  ejR                  ejT                  e
jV                  e
jX                  eefZ-e
j\                  eeeeeefZ/dd„Z0	 	 	 	 	 	 	 	 dd„Z1dd„Z2dd„Z3dd„Z4	 	 	 	 	 	 	 	 dd„Z5	 	 	 	 	 	 dd„Z6dd„Z7y)z#
Templates for invalid operations.
é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚNoReturn)Úlib)ÚNAType)Ú
BaseOffsetÚPeriod)Ú
ArrowDtypeÚCategoricalDtypeÚPeriodDtype)ÚABCDataFrameÚABCExtensionArrayÚABCIndexÚABCNumpyExtensionArrayÚ	ABCSeries)ÚCallable)Ú	ArrayLikeÚScalarÚnptc                óª   — t        t        | «      dd«      }|duxr8 |t        j                  j                  uxr t        t        | «      t        «       S )zK
    Whether a ufunc operand is one pandas hands the operation off to.
    Ú__array_ufunc__N)ÚgetattrÚtypeÚnpÚndarrayr   Ú
issubclassÚ_NON_DEFERRING)ÚobjÚarray_ufuncs     úb/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/core/ops/invalid.pyÚ
_defers_tor"   M   sS   € ô œ$˜s›)Ð%6¸Ó=€Kà˜4Ðò 	6ØœrŸz™z×9Ñ9Ð9ò	6ô
 œ4 ›9¤nÓ5Ð5ðó    c                óF  — |t         j                  u r't        j                  | j                  t
        ¬«      }|S |t         j                  u r't        j                  | j                  t
        ¬«      }|S t        |«      j                  }t        d| j                  › d|› �«      ‚)a®  
    If a comparison has mismatched types and is not necessarily meaningful,
    follow python3 conventions by:

        - returning all-False for equality
        - returning all-True for inequality
        - raising TypeError otherwise

    Parameters
    ----------
    left : array-like
    right : scalar, array-like
    op : operator.{eq, ne, lt, le, gt}

    Raises
    ------
    TypeError : on inequality comparisons
    )Údtypez!Invalid comparison between dtype=z and )ÚoperatorÚeqr   ÚzerosÚshapeÚboolÚneÚonesr   Ú__name__Ú	TypeErrorr%   )ÚleftÚrightÚopÚ
res_valuesÚtyps        r!   Úinvalid_comparisonr4   \   s„   € ð. 
ŒX�[‰[ÑÜ—X‘X˜dŸj™j´Ô5ˆ
ð Ðð 
Œx�{‰{Ñ	Ü—W‘W˜TŸZ™Z¬tÔ4ˆ
ð Ðô �5‹k×"Ñ"ˆÜÐ;¸D¿J¹J¸<ÀuÈSÈEÐRÓSÐSr#   c                ód   — t        j                  | «      ryt        | dd «      }|€yt        |«      S )NFr%   )r   Ú	is_scalarr   Ú_is_datetimelike_dtype©r   r%   s     r!   Ú_is_datetimelike_arrayr9   }   s2   € Ü
‡}�}�SÔØÜ�C˜ $Ó'€EØ€}ØÜ! %Ó(Ð(r#   c                óâ  — t        | dd «      }t        |t        «      r|dv ryt        | t        «      r+| j                  �t        | j                  j                  «      S t        | t        «      rmdd l}| j                  }|j                  j                  |«      s|j                  j                  |«      r|j                  }|j                  j                  |«      S |dv xs t        | t        «      S )NÚkindÚbiufcFr   ÚmM)r   Ú
isinstanceÚstrr   Ú
categoriesr7   r%   r   ÚpyarrowÚpyarrow_dtypeÚtypesÚis_dictionaryÚis_run_end_encodedÚ
value_typeÚis_temporalr   )r%   r;   ÚpaÚpa_types       r!   r7   r7   †   sÅ   € Ü�5˜& $Ó'€DÜ�dœCÔ  D¨G¡Oð Ü�%Ô)Ô*¨u×/?Ñ/?Ð/Kä% e×&6Ñ&6×&<Ñ&<Ó=Ð=Ü�%œÔ$Ûà×%Ñ%ˆØ�8‰8×!Ñ! 'Ô*¨b¯h©h×.IÑ.IÈ'Ô.Rà×(Ñ(ˆGà�x‰x×#Ñ# GÓ,Ð,ð �4ˆ<Ò9œ: e¬[Ó9Ð9r#   c                ó\   — t        | dd «      }|€dt        | «      j                  › �S d|› d�S )Nr%   zobject of type zdtype 'ú')r   r   r-   r8   s     r!   Ú_operand_reprrL   Ÿ   s<   € Ü�C˜ $Ó'€EØ€}Ø ¤ c£×!3Ñ!3Ð 4Ð5Ð5Ø�U�G˜1ÐÐr#   c           
     ó�   — t        | «      st        |«      r0t        d|j                  › dt        | «      › dt        |«      › �«      ‚y)a~  
    Raise TypeError if either operand of a logical op is a datetimelike array.

    Parameters
    ----------
    left : array-like
    right : array-like or scalar
    op : operator.{and_, or_, xor}
        Or one of the reversed variants from roperator.

    Raises
    ------
    TypeError : if either operand is a datetimelike array, including a categorical
        of one
    zoperation 'z' not supported for z with N)r9   r.   r-   rL   )r/   r0   r1   s      r!   Ú disallow_datetimelike_logical_oprN   ¦   sR   € ô( ˜dÔ#Ô'=¸eÔ'DÜØ˜"Ÿ+™+˜Ð&:Ü˜TÓ"Ð# 6¬-¸Ó*>Ð)?ðAó
ð 	
ð (Er#   c                óˆ  — | t         vryt        d„ |D «       «      ry|D ]¡  }t        |t        «      r0t	        d„ |j
                  j                  D «       d«      }|€Œ=d|› �}nEt        |«      rd|j                  › �}n*t        |t        «      rdt        |«      j                  › �}nŒˆt        d|› d| j                  › �«      ‚ y)aã  
    Raise TypeError if a logical ufunc is applied to datetimelike data.

    These are not in ``UFUNC_ALIASES`` -- they differ from ``&``/``|``/``^`` on
    integer data -- so they never reach :func:`disallow_datetimelike_logical_op`
    and need their own guard.  GH#68524

    Parameters
    ----------
    ufunc : numpy.ufunc
    inputs : tuple
        The ufunc's operands, which may include DataFrames.

    Raises
    ------
    TypeError : if any operand is datetimelike
    Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N)r"   )Ú.0r   s     r!   ú	<genexpr>z6disallow_datetimelike_logical_ufunc.<locals>.<genexpr>Ø   s   è ø€ Ò
-˜sŒ:�c�?Ñ
-ùs   ‚c              3  ó^   K  — | ]%  }t        |j                  «      r|j                  –— Œ' y ­wrQ   )r7   r%   )rR   Úblks     r!   rS   z6disallow_datetimelike_logical_ufunc.<locals>.<genexpr>ä   s(   è ø€ ò àÜ-¨c¯i©iÔ8ð —I•Iñùs   ‚+-zwith dtype zof type zObject z cannot perform the numpy op )Ú_LOGICAL_UFUNCSÚanyr>   r   ÚnextÚ_mgrÚblocksr9   r%   Ú_DATETIMELIKE_SCALARSr   r-   r.   )ÚufuncÚinputsr   r%   Údescrs        r!   Ú#disallow_datetimelike_logical_ufuncr_   Á   sÖ   € ð( ”OÑ#Øä
Ñ
- fÔ
-Ô-ð 	àò XˆÜ�cœ<Ô(ô
 ñà"Ÿx™xŸ™ôð
 óˆEð ˆ}ØØ! % Ð)‰EÜ# CÔ(Ø! #§)¡) Ð-‰EÜ˜Ô2Ô3ð œt C›y×1Ñ1Ð2Ð3‰EàÜ˜' % Ð(EÀeÇnÁnÐEUÐVÓWÐWñ3Xr#   c                ó$   ‡ — ddˆ fd„}‰ |_         |S )z¡
    Return a binary method that always raises a TypeError.

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

    Returns
    -------
    invalid_op : function
    c                óP   •— t        | «      j                  }t        d‰› d|› �«      ‚)Nzcannot perform z with this index type: )r   r-   r.   )ÚselfÚotherr3   Únames      €r!   Ú
invalid_opz#make_invalid_op.<locals>.invalid_op  s+   ø€ Ü�4‹j×!Ñ!ˆÜ˜/¨$¨Ð/FÀsÀeÐLÓMÐMr#   rQ   )rb   Úobjectrc   rf   Úreturnr   )r-   )rd   re   s   ` r!   Úmake_invalid_oprh   ù   s   ø€ öNð €JÔØÐr#   )r   rf   rg   r*   )r/   r   r0   z/ArrayLike | list[Any] | range | Scalar | NATyper1   zCallable[[Any, Any], bool]rg   znpt.NDArray[np.bool_])r%   rf   rg   r*   )r   rf   rg   r?   )r/   r   r0   r   r1   zCallable[[Any, Any], Any]rg   ÚNone)r\   znp.ufuncr]   ztuple[Any, ...]rg   ri   )rd   r?   rg   zCallable[..., NoReturn])8Ú__doc__Ú
__future__r   Údatetimer&   Útypingr   r   r   Únumpyr   Úpandas._libsr   Úpandas._libs.missingr   Úpandas._libs.tslibsr	   r
   Úpandas.core.dtypes.dtypesr   r   r   Úpandas.core.dtypes.genericr   r   r   r   r   Úcollections.abcr   Úpandas._typingr   r   r   Ú	frozensetÚlogical_andÚ
logical_orÚlogical_xorÚlogical_notrV   ÚdateÚtimeÚ	timedeltaÚ
datetime64Útimedelta64r[   r   r   r"   r4   r9   r7   rL   rN   r_   rh   © r#   r!   ú<module>r�      s^  ðñõ #ã Û ÷ñ ó å Ý '÷÷
ñ ÷
õ ñ Ý(÷ñ ñ Ø‡^�^�R—]‘] B§N¡N°B·N±NÐCó€ð ‡M�MØ‡M�MØ×ÑØ‡M�MØ‡N�NØ
ØðÐ ð ‡J�JØØàØØØ
ð	€óðØ
ðà:ðð 	#ðð ó	óB)ó:ó2ð
Ø
ð
Øð
Ø%>ð
à	ó
ð65XØð5XØ,ð5Xà	ó5Xôpr#   