class_docstr: The abstract base class `BaseEstimator` defines the basic requirements of an estimator in ART. The BaseEstimator is
  is the highest abstraction of a machine learning model in ART.
class_docstr_tok: ["The","abstract","base","class","`","BaseEstimator","`","defines","the","basic","requirements","of","an","estimator","in","ART",".","The","BaseEstimator","is","is","the","highest","abstraction","of","a","machine","learning","model","in","ART","."]
code: def _update_preprocessing_operations(self):
      from art.defences.preprocessor.preprocessor import Preprocessor
  
      self.preprocessing_operations.clear()
  
      if self.preprocessing_defences is None:
          pass
      elif isinstance(self.preprocessing_defences, Preprocessor):
          self.preprocessing_operations.append(
              self.preprocessing_defences
          )
      else:
          self.preprocessing_operations += self.preprocessing_defences
  
      if self.preprocessing is None:
          pass
      elif isinstance(self.preprocessing, tuple):
          from art.preprocessing.standardisation_mean_std.numpy import (
              StandardisationMeanStd,
          )
  
          self.preprocessing_operations.append(
              StandardisationMeanStd(
                  mean=self.preprocessing[0], std=self.preprocessing[1]
              )
          )
      elif isinstance(self.preprocessing, Preprocessor):
          self.preprocessing_operations.append(self.preprocessing)
      else:  # pragma: no cover
          raise ValueError("Preprocessing argument not recognised.")
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Optional, Tuple, Union, TYPE_CHECKING
  import numpy
  from tqdm.auto import trange
  from art.config import ART_NUMPY_DTYPE
label_desc: Use image node_id 2 for calling the BaseEstimator obj's underlying member method code with example usage: obj._update_preprocessing_operations() without return types