def _start_loop(self): np.random.seed(self._seed) aesaraf.set_at_rng(self._at_seed) draw = 0 tuning = True msg = self._recv_msg() if msg[0] == "abort": raise KeyboardInterrupt() if msg[0] != "start": raise ValueError("Unexpected msg " + msg[0]) while True: if draw == self._tune: self._step_method.stop_tuning() tuning = False if draw < self._draws + self._tune: try: point, stats = self._compute_point() except SamplingError as e: warns = self._collect_warnings() e = ExceptionWithTraceback(e, e.__traceback__) self._msg_pipe.send(("error", warns, e)) else: return msg = self._recv_msg() if msg[0] == "abort": raise KeyboardInterrupt() elif msg[0] == "write_next": self._write_point(point) is_last = draw + 1 == self._draws + self._tune if is_last: warns = self._collect_warnings() else: warns = None self._msg_pipe.send( ("writing_done", is_last, draw, tuning, stats, warns)) draw += 1 else: raise ValueError("Unknown message " + msg[0])
def teardown_method(self): set_at_rng(self.old_at_rng)
def setup_method(self): nr.seed(self.random_seed) self.old_at_rng = at_rng() set_at_rng(RandomStream(self.random_seed))