class_docstr: A no-op task scheduler to aid in testing.
code: def schedule(self) -> ts.TaskSchedulerResult:
      logging.info("Processing ExecNodeTask: %s", self.task)
      executor_output = execution_result_pb2.ExecutorOutput()
      executor_output.execution_result.code = status_lib.Code.OK
      for key, artifacts in self.task.output_artifacts.items():
          for artifact in artifacts:
              executor_output.output_artifacts[
                  key
              ].artifacts.add().CopyFrom(artifact.mlmd_artifact)
      result = ts.TaskSchedulerResult(
          status=status_lib.Status(code=status_lib.Code.OK),
          output=ts.ExecutorNodeOutput(executor_output=executor_output),
      )
      logging.info("Result: %s", result)
      return result
  
file_path: tfx/tfx/orchestration/experimental/core/task_schedulers/noop_task_scheduler.py
imports: from absl import logging
  from tfx.orchestration.experimental.core import task
  from tfx.orchestration.experimental.core import task_scheduler
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.utils import status
label_desc: Use image node_id 1 for calling the NoOpTaskScheduler obj's underlying member method code with example usage: obj.schedule() and returns: result