def ensure_model_is_fresh()

in aepsych/strategy.py [0:0]


def ensure_model_is_fresh(f):
    def wrapper(self, *args, **kwargs):
        if self.has_model and not self._model_is_fresh:
            if self.x is not None and self.y is not None:
                starttime = time.time()
                if self._count % self.refit_every == 0 or self.refit_every == 1:
                    logger.info("Starting fitting (no warm start)...")
                    # don't warm start
                    self.model.fit(self.x, self.y)
                else:
                    logger.info("Starting fitting (warm start)...")
                    # warm start
                    self.model.update(self.x, self.y)
                logger.info(f"Fitting done, took {time.time()-starttime}")
        self._model_is_fresh = True
        return f(self, *args, **kwargs)

    return wrapper