o
    ôT·j™  ã                   @  sT   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	„Z
ddd„ZdS )z#
Templates for invalid operations.
é    )ÚannotationsN)ÚTYPE_CHECKING)ÚnptÚreturnúnpt.NDArray[np.bool_]c                 C  s\   |t ju rtj| jtd�}|S |t ju rtj| jtd�}|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Útyp© r   úZ/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/pandas/core/ops/invalid.pyÚinvalid_comparison   s   

û
þr   ÚnameÚstrc                   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|› �ƒ‚)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!   )r   r   )r   r   )Ú__doc__Ú
__future__r   r   Útypingr   Únumpyr
   Úpandas._typingr   r   r!   r   r   r   r   Ú<module>   s    
