code: def _dump_experiment(
      src_storage, dst_storage, src_exp, src_to_dst_id: dict
  ):
      """Dump a single experiment and related data from src to dst storage.
  
      Parameters
      ----------
      src_storage:
          src storage
      dst_storage:
          dst storage
      src_exp: dict
          src experiment
      src_to_dst_id: dict
          Dictionary mapping experiment ID from src to dst.
          Used to set dst parent ID when writing child experiment in dst storage.
          Updated with new dst ID corresponding to `src_exp`.
      """
      _write_experiment(
          src_exp,
          algo_lock_info=src_storage.get_algorithm_lock_info(
              uid=src_exp["_id"]
          ),
          trials=src_storage.fetch_trials(uid=src_exp["_id"]),
          dst_storage=dst_storage,
          src_to_dst_id=src_to_dst_id,
          verbose=True,
      )
  
imports: import logging
  import os
  import shutil
  from typing import Any, Dict, List
  from orion.core.io.database import DatabaseError
  from orion.core.io.database.pickleddb import PickledDB
  from orion.core.utils import generate_temporary_file
  from orion.core.utils.tree import TreeNode
  from orion.storage.base import BaseStorageProtocol, setup_storage
label_desc: Use image node_id 4 for calling a global function with example usage: _dump_experiment(src_storage, dst_storage, src_exp, src_to_dst_id) without return types