class_docstr: Abstract class interacting with CAIP CMLE job or Vertex CustomJob.
class_docstr_tok: ["Abstract","class","interacting","with","CAIP","CMLE","job","or","Vertex","CustomJob","."]
docstr: Generate container command to run executor.
docstr_tok: ["Generate","container","command","to","run","executor","."]
code: def generate_container_command(
      self,
      input_dict: Dict[str, List[types.Artifact]],
      output_dict: Dict[str, List[types.Artifact]],
      exec_properties: Dict[str, Any],
      executor_class_path: str,
  ) -> List[str]:
      """Generate container command to run executor."""
      json_inputs = artifact_utils.jsonify_artifact_dict(input_dict)
      logging.info("json_inputs='%s'.", json_inputs)
      json_outputs = artifact_utils.jsonify_artifact_dict(output_dict)
      logging.info("json_outputs='%s'.", json_outputs)
      json_exec_properties = json.dumps(exec_properties, sort_keys=True)
      logging.info("json_exec_properties='%s'.", json_exec_properties)
  
      # We use custom containers to launch training on AI Platform, which invokes
      # the specified image using the container's entrypoint. The default
      # entrypoint for TFX containers is to call scripts/run_executor.py. The
      # arguments below are passed to this run_executor entry to run the executor
      # specified in `executor_class_path`.
      return _CONTAINER_COMMAND + [
          "--executor_class_path",
          executor_class_path,
          "--inputs",
          json_inputs,
          "--outputs",
          json_outputs,
          "--exec-properties",
          json_exec_properties,
      ]
  
imports: import abc
  import datetime
  import json
  import random
  from typing import Any, Dict, List, Optional, Union
  from absl import logging
  from google.api_core import retry
  from google.cloud.aiplatform import gapic
  from google.cloud.aiplatform_v1.types.custom_job import CustomJob
  from google.cloud.aiplatform_v1.types.job_state import JobState
  from googleapiclient import discovery
  from tfx import types
  from tfx.types import artifact_utils
  from tfx.utils import telemetry_utils
  from tfx.utils import version_utils
label_desc: Use image node_id 8 for calling the AbstractJobClient obj's underlying member method code with example usage: obj.generate_container_command(input_dict, output_dict, exec_properties, executor_class_path) and returns: unknown