code: def create_checkpoint(
      self,
      experiment: Experiment,
      path: Optional[str],
      step: Optional[int],
      metrics: Optional[Dict[str, Any]],
      primary_metric: Optional[PrimaryMetric],
      quiet: bool,
  ) -> Checkpoint:
      pb_primary_metric = pb_convert.primary_metric_to_pb(
          primary_metric
      )
      pb_checkpoint = pb.Checkpoint(
          metrics=pb_convert.value_map_to_pb(metrics),
          path=path,
          primaryMetric=pb_primary_metric,
          step=step,
      )
      ret = self.stub.CreateCheckpoint(
          pb.CreateCheckpointRequest(
              checkpoint=pb_checkpoint, quiet=quiet
          )
      )
      return pb_convert.checkpoint_from_pb(experiment, ret.checkpoint)
  
imports: import functools
  import tempfile
  import os
  from typing import Optional, Dict, Any, List
  import subprocess
  import atexit
  import sys
  import threading
  import grpc
  from google.rpc import status_pb2, error_details_pb2
  from .servicepb.keepsake_pb2_grpc import DaemonStub
  from .servicepb import keepsake_pb2
  from .None import pb_convert
  from .experiment import Experiment
  from .checkpoint import Checkpoint, PrimaryMetric
  from .None import exceptions
  from .None import console
label_desc: Use image node_id 4 for calling the Daemon obj's underlying member method code with example usage: obj.create_checkpoint(experiment, path, step, metrics, primary_metric, quiet) and returns: pb_convert