`L i,ddlZddlZddlmZdZdZy)N)suppressct|tj xr1t|tjxrt j |S)aTest 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 ) isinstancenumbersIntegralRealmathisnan)xs \/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/utils/_missing.py is_scalar_nanr s@@ q'** ++  q',, '  JJqMc`tt5ddlm}||ucdddS#1swYyxYw)aTest 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 ImportErrorpandasr)r rs r is_pandas_nar/s0 + Bw s $-)r r contextlibrr rrr rs #Lr