code: def experiment_factory(
      project: Project = None,
      id: str = "e1",
      created: datetime.datetime = datetime.datetime(
          2020, 1, 1, 1, 1, 1
      ),
      user: str = "bob",
      host: str = "",
      command: str = "",
      config: dict = {},
      keepsake_version: str = "0.0.1",
      checkpoints: Optional[List[Checkpoint]] = None,
      **kwargs,
  ):
      if checkpoints is not None:
          checkpoints = CheckpointList(checkpoints)
  
      return Experiment(
          project=project,
          id=id,
          created=created,
          user=user,
          host=host,
          command=command,
          config=config,
          keepsake_version=keepsake_version,
          checkpoints=checkpoints,
          **kwargs,
      )
  
imports: import datetime
  from typing import List, Any, Dict, Optional
  from keepsake.checkpoint import Checkpoint, CheckpointList
  from keepsake.experiment import Experiment
  from keepsake.project import Project
label_desc: Use image node_id 1 for calling a global function with example usage: experiment_factory(project, id, created, user, host, command, config, keepsake_version, checkpoints) and returns: Experiment