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: Transform a single batch of data.
  
  The data will be converted to the format supported by the Preprocessor,
  based on which ``_transform_*`` methods are implemented.
  
  Args:
      data: Input data batch.
  
  Returns:
      DataBatchType:
          The transformed data batch. This may differ
          from the input type depending on which ``_transform_*`` methods
          are implemented.
docstr_tok: ["Transform","a","single","batch","of","data",".","The","data","will","be","converted","to","the","format","supported","by","the","Preprocessor",",","based","on","which","``","_transform_","*","``","methods","are","implemented",".","Args",":","data",":","Input","data","batch",".","Returns",":","DataBatchType",":","The","transformed","data","batch",".","This","may","differ","from","the","input","type","depending","on","which","``","_transform_","*","``","methods","are","implemented","."]
code: def transform_batch(self, data: "DataBatchType") -> "DataBatchType":
      """Transform a single batch of data.
  
      The data will be converted to the format supported by the Preprocessor,
      based on which ``_transform_*`` methods are implemented.
  
      Args:
          data: Input data batch.
  
      Returns:
          DataBatchType:
              The transformed data batch. This may differ
              from the input type depending on which ``_transform_*`` methods
              are implemented.
      """
      fit_status = self.fit_status()
      if fit_status in (
          Preprocessor.FitStatus.PARTIALLY_FITTED,
          Preprocessor.FitStatus.NOT_FITTED,
      ):
          raise PreprocessorNotFittedException(
              "`fit` must be called before `transform_batch`."
          )
      return self._transform_batch(data)
  
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 7 for calling the Preprocessor obj's underlying member method code with example usage: obj.transform_batch(data) and returns: self