
    Pi                    n    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dS )z#
Templates for invalid operations.
    )annotationsN)TYPE_CHECKINGAnyNoReturn)Callable)	ArrayLikeScalarnptleftr   rightArrayLike | list | ScalaropCallable[[Any, Any], bool]returnnpt.NDArray[np.bool_]c                   |t           j        u r!t          j        | j        t
                    }n]|t           j        u r!t          j        | j        t
                    }n.t          |          j	        }t          d| j         d|           |S )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   )r   r   r   
res_valuestyps        k/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/core/ops/invalid.pyinvalid_comparisonr"      s    . 
X[Xdj555

	x{		WTZt444

5kk"RDJRRSRRSSS    namestrCallable[..., NoReturn]c                $     dd	 fd} |_         |S )
z
    Return a binary method that always raises a TypeError.

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

    Returns
    -------
    invalid_op : function
    Nselfobjectotherr   r   c                V    t          |           j        }t          d d|           )Nzcannot perform z with this index type: )r   r   r   )r(   r*   r    r$   s      r!   
invalid_opz#make_invalid_op.<locals>.invalid_opH   s0    4jj!L$LLsLLMMMr#   )N)r(   r)   r*   r)   r   r   )r   )r$   r,   s   ` r!   make_invalid_opr-   ;   s=    N N N N N N N Jr#   )r   r   r   r   r   r   r   r   )r$   r%   r   r&   )__doc__
__future__r   r   typingr   r   r   numpyr   collections.abcr   pandas._typingr   r	   r
   r"   r-    r#   r!   <module>r5      s     # " " " " "               ((((((            B     r#   