class_docstr: Base class for mutators.
  
  Users are not advised to use this class.
docstr: Map mutator names to actual classes via the registry.
  
  :param mutator_names:
      A list of one or more mutators separated by '+'. E.g.
      'flatten+word_shuffle'.
  :returns: a list of mutators
docstr_tok: ["Map","mutator","names","to","actual","classes","via","the","registry",".",":","param","mutator_names",":","A","list","of","one","or","more","mutators","separated","by","'+","'",".","E.g",".","'flatten+word_shuffle","'",".",":","returns",":","a","list","of","mutators"]
code: def load_mutator_types(
      cls, mutator_names: Optional[str]
  ) -> List[Type]:
      """
      Map mutator names to actual classes via the registry.
  
      :param mutator_names:
          A list of one or more mutators separated by '+'. E.g.
          'flatten+word_shuffle'.
      :returns: a list of mutators
      """
  
      global MUTATOR_REGISTRY
      setup_mutator_registry()
      if not mutator_names:
          return []
      assert isinstance(mutator_names, str)
      names = mutator_names.replace("+", ",").split(",")
      mutators = [MUTATOR_REGISTRY[name] for name in names]
      return mutators
  
imports: from __future__ import annotations
  import abc
  import importlib
  import pkgutil
  from typing import Optional, Iterable, Tuple, List, Iterator, Callable, Type
  import parlai.mutators
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from parlai.core.message import Message
label_desc: Use image node_id 1 for calling the Mutator obj's underlying member method code with example usage: obj.load_mutator_types(cls, mutator_names) and returns: mutators, list