code: def experiment_from_dict(data, info=None):
      if info is None:
          info = {}
  
      try:
          return Experiment(
              key=data["key"],
              filename=data["filename"],
              args=data.get("args"),
              pythonenv=data["pythonenv"],
              project=data.get("project"),
              status=data["status"],
              artifacts=data.get("artifacts"),
              resources_needed=data.get("resources_needed"),
              time_added=data["time_added"],
              time_started=data.get("time_started"),
              time_last_checkpoint=data.get("time_last_checkpoint"),
              time_finished=data.get("time_finished"),
              info=info if any(info) else data.get("info"),
              git=data.get("git"),
              metric=data.get("metric"),
              pythonver=data.get("pythonver"),
              max_duration=data.get("max_duration"),
              owner=data.get("owner"),
              from_compl_service=data.get("from_compl_service", False),
          )
      except KeyError as exc:
          raise exc
  
file_path: studio/studio/experiments/experiment.py
imports: import uuid
  import sys
  import time
  from studio.artifacts import artifacts_tracker
  from studio.artifacts.artifact import Artifact
  from studio.util.util import shquote
  from studio.dependencies_policies.dependencies_policy import DependencyPolicy
label_desc: Use image node_id 2 for calling a global function with example usage: experiment_from_dict(data, info) and returns: Experiment