code: def queued_event(
      self,
      ex_info,
      command,
      host_info,
      queue_time,
      config,
      meta_info,
      _id,
  ):
      if self.overwrite is not None:
          raise RuntimeError("Can't overwrite with QUEUED run.")
      self.run_entry = {
          "experiment": dict(ex_info),
          "command": command,
          "host": dict(host_info),
          "config": flatten(config),
          "meta": meta_info,
          "status": "QUEUED",
      }
      # set ID if given
      if _id is not None:
          self.run_entry["_id"] = _id
      # save sources
      self.run_entry["experiment"]["sources"] = self.save_sources(
          ex_info
      )
      self.insert()
      return self.run_entry["_id"]
  
imports: from typing import Optional, Union
  import mimetypes
  import os.path
  import pickle
  import re
  import sys
  import time
  from tempfile import NamedTemporaryFile
  import warnings
  import sacred.optional
  from sacred.commandline_options import cli_option
  from sacred.dependencies import get_digest
  from sacred.observers.base import RunObserver
  from sacred.observers.queue import QueueObserver
  from sacred.serializer import flatten
  from sacred.utils import ObserverError, PathType
  import pkg_resources
label_desc: Use image node_id 5 for calling the MongoObserver obj's underlying member method code with example usage: obj.queued_event(ex_info, command, host_info, queue_time, config, meta_info, _id) and returns: self