code: def save(
      self,
      type: str,
      name: str,
      client_id: str,
      sequence_client_id: str,
      distributed_id: Optional[str] = None,
      finalize: bool = True,
      metadata: Optional[Dict] = None,
      ttl_duration_seconds: Optional[int] = None,
      description: Optional[str] = None,
      aliases: Optional[Sequence[str]] = None,
      use_after_commit: bool = False,
      incremental: bool = False,
      history_step: Optional[int] = None,
      base_id: Optional[str] = None,
  ) -> Tuple[Dict, Optional[concurrent.futures.Future]]:
      server_artifact = None
      commit_fut = None
      try:
          server_artifact, commit_fut = self._save_internal(
              type,
              name,
              client_id,
              sequence_client_id,
              distributed_id,
              finalize,
              metadata,
              ttl_duration_seconds,
              description,
              aliases,
              use_after_commit,
              incremental,
              history_step,
              base_id,
          )
          return server_artifact, commit_fut
      finally:
          if commit_fut is not None:
              commit_fut.add_done_callback(
                  lambda _: self._cleanup_staged_entries()
              )
          else:
              self._cleanup_staged_entries()
  
file_path: wandb/wandb/sdk/artifacts/artifact_saver.py
imports: import concurrent.futures
  import json
  import os
  import sys
  import tempfile
  from typing import TYPE_CHECKING, Awaitable, Dict, Optional, Sequence, Tuple
  import wandb
  import wandb.filesync.step_prepare
  from wandb import util
  from wandb.sdk.artifacts.artifact_manifest import ArtifactManifest
  from wandb.sdk.artifacts.staging import get_staging_dir
  from wandb.sdk.lib.hashutil import B64MD5, b64_to_hex_id, md5_file_b64
  from wandb.sdk.lib.paths import URIStr
label_desc: Use image node_id 2 for calling the ArtifactSaver obj's underlying member method code with example usage: obj.save(type, name, client_id, sequence_client_id, distributed_id, finalize, metadata, ttl_duration_seconds, description, aliases, use_after_commit, incremental, history_step, base_id) and returns: server_artifact,  commit_fut