a
    Oªf™  ã                   @  s\   d Z ddlmZ ddlZddlmZ ddlZer<ddlm	Z	 ddœdd	„Z
d
dœdd„ZdS )z#
Templates for invalid operations.
é    )ÚannotationsN)ÚTYPE_CHECKING)Únptznpt.NDArray[np.bool_])Úreturnc                 C  s\   |t ju rtj| jtd}n<|t ju r8tj| jtd}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ÚnpZzerosÚshapeÚboolÚneZonesÚtypeÚ__name__Ú	TypeErrorr   )ÚleftÚrightÚopZ
res_valuesÚtyp© r   úP/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/core/ops/invalid.pyÚinvalid_comparison   s    


r   Ústr©Únamec                   s   d‡ fdd„	}ˆ |_ |S )z¡
    Return a binary method that always raises a TypeError.

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

    Returns
    -------
    invalid_op : function
    Nc                   s"   t | ƒj}tdˆ › d|› ƒ‚d S )Nzcannot perform z with this index type: )r   r   r   )ÚselfÚotherr   r   r   r   Ú
invalid_op9   s    
z#make_invalid_op.<locals>.invalid_op)N)r   )r   r   r   r   r   Úmake_invalid_op,   s    r   )Ú__doc__Ú
__future__r   r   Útypingr   Únumpyr	   Zpandas._typingr   r   r   r   r   r   r   Ú<module>   s   