class_docstr: Command channel based on a local file system.
  This is the legacy implementation before NNI v3.0.
class_docstr_tok: ["Command","channel","based","on","a","local","file","system",".","This","is","the","legacy","implementation","before","NNI","v3.0","."]
code: def send_metric(
      self,
      type: Literal["PERIODICAL", "FINAL"],
      parameter_id: int | None,  # pylint: disable=redefined-builtin
      trial_job_id: str,
      sequence: int,
      value: TrialMetric,
  ) -> None:
      dumped_metric = dump(
          {
              "parameter_id": parameter_id,
              "trial_job_id": trial_job_id,
              "type": type,
              "sequence": sequence,
              "value": dump(value),
          }
      )
      self._send(dumped_metric)
  
file_path: nni/nni/runtime/trial_command_channel/local_legacy.py
imports: from __future__ import annotations
  import os
  import sys
  import time
  import subprocess
  from typing import cast
  from typing_extensions import Literal
  from nni.common import dump, load
  from nni.typehint import TrialMetric
  from .base import TrialCommandChannel, ParameterRecord
  from ..env_vars import trial_env_vars
label_desc: Use image node_id 5 for calling the LocalLegacyTrialCommandChannel obj's underlying member method code with example usage: obj.send_metric(type, parameter_id, trial_job_id, sequence, value) without return types