Ë
    *�£jª  ã                  ó|   — d Z ddlmZ ddlZddlmZmZmZ ddlZ	erddl
mZ ddlmZmZmZ 	 	 	 	 	 	 	 	 d	d„Zd
d„Zy)z#
Templates for invalid operations.
é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚNoReturn)ÚCallable)Ú	ArrayLikeÚScalarÚnptc                ó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ÚeqÚnpÚzerosÚshapeÚboolÚneÚonesÚtypeÚ__name__Ú	TypeErrorr   )ÚleftÚrightÚopÚ
res_valuesÚtyps        ú9C:\FundamentalWorkbench\vendor\pandas\core\ops\invalid.pyÚinvalid_comparisonr      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ÐSó    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Úotherr   Únames      €r   Ú
invalid_opz#make_invalid_op.<locals>.invalid_opH   s+   ø€ Ü�4‹j×!Ñ!ˆÜ˜/¨$¨Ð/FÀsÀeÐLÓMÐMr   )N)r"   Úobjectr#   r&   Úreturnr   )r   )r$   r%   s   ` r   Úmake_invalid_opr(   ;   s   ø€ öNð €JÔØÐr   )r   r   r   z!ArrayLike | list | range | Scalarr   zCallable[[Any, Any], bool]r'   znpt.NDArray[np.bool_])r$   Ústrr'   zCallable[..., NoReturn])Ú__doc__Ú
__future__r   r   Útypingr   r   r   Únumpyr   Úcollections.abcr   Úpandas._typingr   r	   r
   r   r(   © r   r   Ú<module>r1      s`   ðñõ #ã ÷ñ ó áÝ(÷ñ ðØ
ðà,ðð 	#ðð ó	ôBr   