class_docstr: :class:`BasePreprocessor` to input handle data.
  
  A preprocessor should be used in two steps. First, `fit`, then,
  `transform`. `fit` collects information into `context`, which includes
  everything the preprocessor needs to `transform` together with other
  useful information for later use. `fit` will only change the
  preprocessor's inner state but not the input data. In contrast,
  `transform` returns a modified copy of the input data without changing
  the preprocessor's inner state.
docstr: Prepare needed process units.
docstr_tok: ["Prepare","needed","process","units","."]
code: def _default_units(cls) -> list:
      """Prepare needed process units."""
      return [
          mz.preprocessors.units.tokenize.Tokenize(),
          mz.preprocessors.units.lowercase.Lowercase(),
          mz.preprocessors.units.punc_removal.PuncRemoval(),
      ]
  
file_path: MatchZoo/matchzoo/engine/base_preprocessor.py
imports: import abc
  import functools
  import typing
  from pathlib import Path
  import dill
  import matchzoo
label_desc: Use image node_id 7 for calling the BasePreprocessor obj's underlying member method code with example usage: obj._default_units(cls) and returns: list