code: def testRunExecutor_with_InplaceUpdateExecutor(self):
      executor_sepc = text_format.Parse(
          """
        class_path: "tfx.orchestration.portable.python_executor_operator_test.InplaceUpdateExecutor"
      """,
          executable_spec_pb2.PythonClassExecutableSpec(),
      )
      operator = python_executor_operator.PythonExecutorOperator(
          executor_sepc
      )
      input_dict = {"input_key": [standard_artifacts.Examples()]}
      output_dict = {"output_key": [standard_artifacts.Model()]}
      exec_properties = {
          "string": "value",
          "int": 1,
          "float": 0.0,
          # This should not happen on production and will be
          # dropped.
          "proto": execution_result_pb2.ExecutorOutput(),
      }
      executor_output = operator.run_executor(
          self._get_execution_info(
              input_dict, output_dict, exec_properties
          )
      )
      self.assertProtoPartiallyEquals(
          """
            execution_properties {
              key: "float"
              value {
                double_value: 0.0
              }
            }
            execution_properties {
              key: "int"
              value {
                int_value: 1
              }
            }
            execution_properties {
              key: "string"
              value {
                string_value: "value"
              }
            }
            output_artifacts {
              key: "output_key"
              value {
                artifacts {
                  custom_properties {
                    key: "name"
                    value {
                      string_value: "MyPipeline.MyPythonNode.my_model"
                    }
                  }
                  name: "MyPipeline.MyPythonNode.my_model"
                }
              }
            }""",
          executor_output,
      )
  
imports: import os
  from typing import Any, Dict, List
  import tensorflow
  from tfx import types
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.io import fileio
  from tfx.orchestration.portable import data_types
  from tfx.orchestration.portable import outputs_utils
  from tfx.orchestration.portable import python_executor_operator
  from tfx.proto.orchestration import executable_spec_pb2
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import standard_artifacts
  from tfx.utils import test_case_utils
  from google.protobuf import text_format
label_desc: Use image node_id 4 for calling the PythonExecutorOperatorTest obj's underlying member method code with example usage: obj.testRunExecutor_with_InplaceUpdateExecutor() without return types