class_docstr: A specification of executor class.
  
  Attributes:
    executor_class: a subclass of base_executor.BaseExecutor used to execute
      this component (required).
    extra_flags: extra flags to be set in the Python base executor.
class_docstr_tok: ["A","specification","of","executor","class",".","Attributes",":","executor_class",":","a","subclass","of","base_executor.BaseExecutor","used","to","execute","this","component","(","required",")",".","extra_flags",":","extra","flags","to","be","set","in","the","Python","base","executor","."]
code: def __reduce__(self):
      # When executing on the Beam DAG runner, the ExecutorClassSpec instance
      # is pickled using the "dill" library. To make sure that the executor code
      # itself is not pickled, we save the class path which will be reimported
      # by the worker in this custom __reduce__ function.
      #
      # See https://docs.python.org/3/library/pickle.html#object.__reduce__ for
      # more details.
      return (
          ExecutorClassSpec._reconstruct_from_executor_class_path,
          (self.class_path,),
      )
  
imports: import copy
  from typing import cast, Iterable, List, Optional, Type, Union
  from tfx import types
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.placeholder import placeholder
  from tfx.proto.orchestration import executable_spec_pb2
  from tfx.proto.orchestration import placeholder_pb2
  from tfx.utils import import_utils
  from tfx.utils import json_utils
  from tfx.utils import name_utils
  from google.protobuf import message
label_desc: Use image node_id 2 for calling the ExecutorClassSpec obj's underlying member method code with example usage: obj.__reduce__() and returns: ExecutorClassSpec,  self