code: def started_event(
      self,
      ex_info,
      command,
      host_info,
      start_time,
      config,
      meta_info,
      _id,
  ):
      self.db_run_id = None
  
      self.run_entry = {
          "experiment": dict(ex_info),
          "format": self.VERSION,
          "command": command,
          "host": dict(host_info),
          "start_time": start_time,
          "config": config,
          "meta": meta_info,
          "status": "RUNNING",
          "resources": [],
          "artifacts": [],
          "captured_out": "",
          "info": {},
          "heartbeat": None,
      }
  
      # set ID if not given
      if _id is None:
          _id = uuid.uuid4().hex
  
      self.run_entry["_id"] = _id
  
      # save sources
      self.run_entry["experiment"]["sources"] = self.save_sources(
          ex_info
      )
      self.save()
      return self.run_entry["_id"]
  
imports: from __future__ import division, print_function, unicode_literals, absolute_import
  import os
  import textwrap
  import uuid
  from collections import OrderedDict
  import warnings
  from sacred.__about__ import __version__
  from sacred.commandline_options import cli_option
  from sacred.observers import RunObserver
label_desc: Use image node_id 7 for calling the TinyDbObserver obj's underlying member method code with example usage: obj.started_event(ex_info, command, host_info, start_time, config, meta_info, _id) and returns: self