class_docstr: Abstract base class for preprocessing defences.
  
  By default, the gradient is estimated using BPDA with the identity function.
      To modify, override `estimate_gradient`
docstr: Perform data preprocessing and return preprocessed data as tuple.
  
  :param x: Dataset to be preprocessed.
  :param y: Labels to be preprocessed.
  :return: Preprocessed data.
docstr_tok: ["Perform","data","preprocessing","and","return","preprocessed","data","as","tuple",".",":","param","x",":","Dataset","to","be","preprocessed",".",":","param","y",":","Labels","to","be","preprocessed",".",":","return",":","Preprocessed","data","."]
code: def __call__(
      self, x: np.ndarray, y: Optional[Any] = None
  ) -> Tuple[np.ndarray, Optional[Any]]:
      """
      Perform data preprocessing and return preprocessed data as tuple.
  
      :param x: Dataset to be preprocessed.
      :param y: Labels to be preprocessed.
      :return: Preprocessed data.
      """
      raise NotImplementedError
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import abc
  from typing import List, Optional, Tuple, Any, TYPE_CHECKING
  import numpy
  from art import config
label_desc: Use image node_id 5 for calling the Preprocessor obj's underlying member method code with example usage: obj.__call__(x, y) without return types