code: def _estimator_has(attr: str) -> bool:
      return lambda self: hasattr(self, "est_") and hasattr(
          self.est_, attr
      )
  
imports: from importlib.metadata import version
  import warnings
  import numpy
  import pandas
  import sklearn
  from sklearn.metrics import make_scorer, average_precision_score
  from sklearn.base import BaseEstimator, ClassifierMixin, RegressorMixin
  from sklearn.preprocessing import LabelEncoder
  from sklearn.utils.multiclass import type_of_target
  from sklearn.pipeline import make_pipeline, Pipeline
  from sklearn.exceptions import UndefinedMetricWarning
  from sklearn.model_selection import StratifiedKFold, KFold
  from sklearn.model_selection._validation import _fit_and_score
  from sklearn.utils.validation import check_is_fitted
  from dabl._available_if import available_if
  from sklearn.dummy import DummyClassifier
  from sklearn.experimental import enable_halving_search_cv
  from sklearn.model_selection import HalvingGridSearchCV
  from .preprocessing import EasyPreprocessor, detect_types
  from .pipelines import get_fast_classifiers, get_fast_regressors, get_any_classifiers
  from .utils import _validate_Xyt
label_desc: Use image node_id 1 for calling the _DablBaseEstimator obj's underlying member method code with example usage: obj._estimator_has(attr) and returns: function