class_docstr: Experiment Class - create and run an experiment
  
  :param exp_config: configuration of the experiment
  :type exp_config: BasicConfig.BasicConfig
  :param username: username, default: None - will use login username
  :type username: str
  :param connector: connector to database
  :type connector: AbstractConnector
  :param auppath: Auptimizer env.ini file folder, default is either ``./.aup`` or ``~/.aup``
  :type auppath: str
  :param sleep_time: time to pause between jobs
  :type sleep_time: int
class_docstr_tok: ["Experiment","Class","-","create","and","run","an","experiment",":","param","exp_config",":","configuration","of","the","experiment",":","type","exp_config",":","BasicConfig.BasicConfig",":","param","username",":","username",",","default",":","None","-","will","use","login","username",":","type","username",":","str",":","param","connector",":","connector","to","database",":","type","connector",":","AbstractConnector",":","param","auppath",":","Auptimizer","env.ini","file","folder",",","default","is","either","``",".\/.aup","``","or","``","~\/.aup","``",":","type","auppath",":","str",":","param","sleep_time",":","time","to","pause","between","jobs",":","type","sleep_time",":","int"]
docstr: Checks the database status of the experiment for external stopping requests
  
  This method is run continuously in a separate "clean-up" thread in order to check for
  external modifications to the experiment status in the database, in case a user
  wants to stop an experiment remotely (e.g. from another process).
docstr_tok: ["Checks","the","database","status","of","the","experiment","for","external","stopping","requests","This","method","is","run","continuously","in","a","separate","``","clean-up","''","thread","in","order","to","check","for","external","modifications","to","the","experiment","status","in","the","database",",","in","case","a","user","wants","to","stop","an","experiment","remotely","(","e.g",".","from","another","process",")","."]
code: def _check_status(self):
      """
      Checks the database status of the experiment for external stopping requests
  
      This method is run continuously in a separate "clean-up" thread in order to check for
      external modifications to the experiment status in the database, in case a user
      wants to stop an experiment remotely (e.g. from another process).
      """
      if self.connector is None or self.eid is None:
          logger.warning(
              "Could not start thread for checking external experiment stopping requests."
          )
          return
  
      while True:
          try:
              if self.connector.is_closed():
                  logger.debug("Closing down clean-up thread.")
                  return
  
              status = self.connector.maybe_get_experiment_status(
                  self.eid
              )
              if status == "REQUEST_STOP":
                  return _thread.interrupt_main()
  
              time.sleep(self.request_stop_time)
          except Exception as ex:
              logger.debug("Error in clean-up thread: {}".format(ex))
  
imports: import json
  import logging
  import os
  import signal
  import sys
  import _thread
  import threading
  import time
  from ..Proposer import get_proposer, SPECIAL_EXIT_PROPOSERS
  from .Job import Job
  from .Resource import get_resource_manager
  from ..aup import BasicConfig
  from ..utils import set_default_keyvalue, check_missing_key, get_default_connector, get_default_username
  from ..compression.utils import *
  from ..Proposer import ProposerStatus
label_desc: Use image node_id 10 for calling the Experiment obj's underlying member method code with example usage: obj._check_status() and returns: _thread