code: def register_result(self, job, skip_sanity_checks=False):
  		
  
  		if self.is_finished:
  			raise RuntimeError("This HB iteration is finished, you can't register more results!")
  
  		config_id = job.id
  		config = job.kwargs['config']
  		budget = job.kwargs['budget']
  		timestamps = job.timestamps
  		result = job.result
  		exception = job.exception
  		
  		d = self.data[config_id]
  		
  		if not skip_sanity_checks:
  			assert d.config == config, 'Configurations differ!'
  			assert d.status == 'RUNNING', "Configuration wasn't scheduled for a run."
  			assert d.budget == budget, 'Budgets differ (%f != %f)!'%(self.data[config_id]['budget'], budget)
  
  		d.time_stamps[budget] = timestamps
  		d.results[budget] = result
  
  		if (not job.result is None) and np.isfinite(result['loss']):
  			d.status = 'REVIEW'
  		else:
  			d.status = 'CRASHED'
  
  		d.exceptions[budget] = exception
  		self.num_running -= 1
docs: function to register the result of a job
  
  		This function is called from HB_master, don't call this from
  		your script.