code: def run(self, exp_config=None, app_id=None, bot=False, **kwargs):
          
          import dallinger as dlgr
  
          app_id = self.make_uuid(app_id)
  
          if bot:
              kwargs["recruiter"] = "bots"
  
          self.app_id = app_id
          self.exp_config = exp_config or kwargs
          self.update_status("Starting")
          try:
              if self.exp_config.get("mode") == "debug":
                  dlgr.command_line.debug.callback(
                      verbose=True, bot=bot, proxy=None, exp_config=self.exp_config
                  )
              else:
                  dlgr.deployment.deploy_sandbox_shared_setup(
                      dlgr.command_line.log,
                      app=app_id,
                      verbose=self.verbose,
                      exp_config=self.exp_config,
                  )
          except Exception:
              self.update_status("Errored")
              raise
          else:
              self.update_status("Running")
          self._await_completion()
          self.update_status("Retrieving data")
          data = self.retrieve_data()
          self.update_status("Completed")
          return data
docs: Deploy and run an experiment.
  
          The exp_config object is either a dictionary or a
          ``localconfig.LocalConfig`` object with parameters
          specific to the experiment run grouped by section.