class_docstr: Data provider for managing experiment lifecycle.
class_docstr_tok: ["Data","provider","for","managing","experiment","lifecycle","."]
code: def start_experiment(self, experiment):
      time_started = time.time()
      experiment.time_started = time_started
      experiment.status = "running"
  
      experiment_dict = self._get(
          self._get_experiments_keybase() + experiment.key
      )
      experiment_dict["time_started"] = time_started
      experiment_dict["status"] = "running"
  
      self._set(
          self._get_experiments_keybase() + experiment.key,
          experiment_dict,
      )
  
      self.checkpoint_experiment(experiment)
  
imports: import time
  from concurrent.futures import ThreadPoolExecutor, wait
  from studio.util import util, logs
  from studio.storage.storage_handler import StorageHandler
  from studio.artifacts.artifact import Artifact
  from studio.experiments.experiment import Experiment, experiment_from_dict
  from studio.storage.storage_setup import get_storage_verbose_level
  from studio.util.util import retry, report_fatal, compression_to_extension, check_for_kb_interrupt
label_desc: Use image node_id 12 for calling the KeyValueProvider obj's underlying member method code with example usage: obj.start_experiment(experiment) without return types