in jetstream/analysis.py [0:0]
def check_runnable(self, current_date: datetime | None = None) -> bool:
if self.config.experiment.normandy_slug is None:
# some experiments do not have a normandy slug
raise errors.NoSlugException()
if self.config.experiment.skip:
raise errors.ExplicitSkipException(self.config.experiment.normandy_slug)
if self.config.experiment.is_high_population:
raise errors.HighPopulationException(self.config.experiment.normandy_slug)
if not self.config.experiment.enrollment_period:
raise errors.NoEnrollmentPeriodException(self.config.experiment.normandy_slug)
if self.config.experiment.start_date is None:
raise errors.NoStartDateException(self.config.experiment.normandy_slug)
if (
current_date
and self.config.experiment.end_date
and self.config.experiment.end_date < current_date
):
raise errors.EndedException(self.config.experiment.normandy_slug)
if self.config.experiment.is_rollout:
raise errors.RolloutSkipException(self.config.experiment.normandy_slug)
return True