class_docstr: Implements an ML preprocessing operation.
  
  Preprocessors are stateful objects that can be fitted against a Dataset and used
  to transform both local data batches and distributed data. For example, a
  Normalization preprocessor may calculate the mean and stdev of a field during
  fitting, and uses these attributes to implement its normalization transform.
  
  Preprocessors can also be stateless and transform data without needed to be fitted.
  For example, a preprocessor may simply remove a column, which does not require
  any state to be fitted.
  
  If you are implementing your own Preprocessor sub-class, you should override the
  following:
  
  * ``_fit`` if your preprocessor is stateful. Otherwise, set
    ``_is_fittable=False``.
  * ``_transform_pandas`` and/or ``_transform_numpy`` for best performance,
    implement both. Otherwise, the data will be converted to the match the
    implemented method.
docstr: Checks if the Preprocessor has fitted state.
  
  This is also used as an indiciation if the Preprocessor has been fit, following
  convention from Ray versions prior to 2.6.
  This allows preprocessors that have been fit in older versions of Ray to be
  used to transform data in newer versions.
docstr_tok: ["Checks","if","the","Preprocessor","has","fitted","state",".","This","is","also","used","as","an","indiciation","if","the","Preprocessor","has","been","fit",",","following","convention","from","Ray","versions","prior","to","2.6",".","This","allows","preprocessors","that","have","been","fit","in","older","versions","of","Ray","to","be","used","to","transform","data","in","newer","versions","."]
code: def _check_has_fitted_state(self):
      """Checks if the Preprocessor has fitted state.
  
      This is also used as an indiciation if the Preprocessor has been fit, following
      convention from Ray versions prior to 2.6.
      This allows preprocessors that have been fit in older versions of Ray to be
      used to transform data in newer versions.
      """
  
      fitted_vars = [v for v in vars(self) if v.endswith("_")]
      return bool(fitted_vars)
  
imports: import abc
  import base64
  import collections
  import pickle
  import warnings
  from enum import Enum
  from typing import TYPE_CHECKING, Any, Dict, Optional, Union
  from ray.air.util.data_batch_conversion import BatchFormat
  from ray.util.annotations import Deprecated, DeveloperAPI, PublicAPI
label_desc: Use image node_id 1 for calling the Preprocessor obj's underlying member method code with example usage: obj._check_has_fitted_state() and returns: bool