"""Transformers for missing value imputation.""" | |
# Authors: The scikit-learn developers | |
# SPDX-License-Identifier: BSD-3-Clause | |
import typing | |
from ._base import MissingIndicator, SimpleImputer | |
from ._knn import KNNImputer | |
if typing.TYPE_CHECKING: | |
# Avoid errors in type checkers (e.g. mypy) for experimental estimators. | |
# TODO: remove this check once the estimator is no longer experimental. | |
from ._iterative import IterativeImputer # noqa | |
__all__ = ["MissingIndicator", "SimpleImputer", "KNNImputer"] | |
# TODO: remove this check once the estimator is no longer experimental. | |
def __getattr__(name): | |
if name == "IterativeImputer": | |
raise ImportError( | |
f"{name} is experimental and the API might change without any " | |
"deprecation cycle. To use it, you need to explicitly import " | |
"enable_iterative_imputer:\n" | |
"from sklearn.experimental import enable_iterative_imputer" | |
) | |
raise AttributeError(f"module {__name__} has no attribute {name}") | |