Ë
    ÷Q(hÇ  ã                   ó,   — d dl Z d dlZd dlmZ d„ Zd„ Zy)é    N)Úsuppressc                 óž   — t        | t        j                  «       xr1 t        | t        j                  «      xr t	        j
                  | «      S )a†  Test if x is NaN.

    This function is meant to overcome the issue that np.isnan does not allow
    non-numerical types as input, and that np.nan is not float('nan').

    Parameters
    ----------
    x : any type
        Any scalar value.

    Returns
    -------
    bool
        Returns true if x is NaN, and false otherwise.

    Examples
    --------
    >>> import numpy as np
    >>> from sklearn.utils._missing import is_scalar_nan
    >>> is_scalar_nan(np.nan)
    True
    >>> is_scalar_nan(float("nan"))
    True
    >>> is_scalar_nan(None)
    False
    >>> is_scalar_nan("")
    False
    >>> is_scalar_nan([np.nan])
    False
    )Ú
isinstanceÚnumbersÚIntegralÚRealÚmathÚisnan)Úxs    úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/utils/_missing.pyÚis_scalar_nanr   	   s@   € ô@ �qœ'×*Ñ*Ó+Ð+ò 	Ü�qœ'Ÿ,™,Ó'ò	ä�J‰J�q‹Mðó    c                 ó`   — t        t        «      5  ddlm} | |u cddd«       S # 1 sw Y   yxY w)aˆ  Test if x is pandas.NA.

    We intentionally do not use this function to return `True` for `pd.NA` in
    `is_scalar_nan`, because estimators that support `pd.NA` are the exception
    rather than the rule at the moment. When `pd.NA` is more universally
    supported, we may reconsider this decision.

    Parameters
    ----------
    x : any type

    Returns
    -------
    boolean
    r   )ÚNANF)r   ÚImportErrorÚpandasr   )r   r   s     r   Úis_pandas_nar   /   s0   € ô  
”+Ó	ñ Ýà�Bˆw÷÷ ñ ð
 ús   �
$¤-)r	   r   Ú
contextlibr   r   r   © r   r   ú<module>r      s   ðó Û Ý ò#óLr   