class_docstr: Base class for all processors 
class_docstr_tok: ["Base","class","for","all","processors"]
code: def _set_up_variants(self, config, device):
      processor_name = list(self.__class__.PROVIDES_DEFAULT)[0]
      if any(
          config.get(f"with_{variant}", False)
          for variant in PROCESSOR_VARIANTS[processor_name]
      ):
          self._trainer = None
          variant_name = [
              variant
              for variant in PROCESSOR_VARIANTS[processor_name]
              if config.get(f"with_{variant}", False)
          ][0]
          self._variant = PROCESSOR_VARIANTS[processor_name][
              variant_name
          ](config)
  
imports: from abc import ABC, abstractmethod
  from stanza.models.common.doc import Document
  from stanza.pipeline.registry import NAME_TO_PROCESSOR_CLASS, PIPELINE_NAMES, PROCESSOR_VARIANTS
label_desc: Use image node_id 8 for calling the Processor obj's underlying member method code with example usage: obj._set_up_variants(config, device) without return types