def apply_rule(self, filename, id_): values = self.ui.get_values() refstart = values['start_unix_time'] refyear = values['start_year'] month = values['start_month'] + 1 day = values['start_day'] rstartH = values['start_hour'] rstartM = values['start_minute'] interval = values['interval_years'] endtype = values['end_type'] rend = values['end_relative_time'] fend = values['end_next_day'] rendn = values['end_relative_number'] rendu = values['end_relative_unit'] rendH = values['end_hour'] rendM = values['end_minute'] alarmtype = values['alarm_type'] ralarm = values['alarm_relative_time'] palarm = values['alarm_previous_day'] ralarmn = values['alarm_relative_number'] ralarmu = values['alarm_relative_unit'] ralarmH = values['alarm_hour'] ralarmM = values['alarm_minute'] standard = values['time_standard'] try: if standard == 'UTC': ruled = organism_basicrules_api.make_occur_yearly_rule_UTC( interval, refyear, month, day, rstartH, rstartM, rend, ralarm, (endtype, alarmtype)) else: ruled = organism_basicrules_api.make_occur_yearly_rule_local( interval, refyear, month, day, rstartH, rstartM, rend, ralarm, (endtype, alarmtype)) except organism_basicrules_api.BadRuleError: msgboxes.warn_bad_rule(msgboxes.generic).ShowModal() else: label = self._make_label(interval, refyear, month, day, rstartH, rstartM, rendH, rendM, ralarmH, ralarmM, rendn, rendu, ralarmn, ralarmu, endtype, alarmtype, fend, palarm, standard) wxscheduler_api.apply_rule(filename, id_, ruled, label)
def create_random_rule(): interval = random.randint(1, 3) refyear = random.randint(1990, 2020) month = random.randint(1, 12) while True: day = random.randint(1, 31) try: _datetime.date(refyear, month, day) except ValueError: continue else: break hour = random.randint(0, 23) minute = random.randint(0, 59) endtype = random.randint(0, 2) if endtype == 0: rend = None else: rend = random.randint(1, 360) * 60 alarmtype = random.randint(0, 2) if alarmtype == 0: ralarm = None else: ralarm = random.randint(0, 360) * 60 stdn = random.randint(0, 1) if stdn == 0: return organism_basicrules_api.make_occur_yearly_rule_local( interval, refyear, month, day, hour, minute, rend, ralarm, (endtype, alarmtype)) else: return organism_basicrules_api.make_occur_yearly_rule_UTC( interval, refyear, month, day, hour, minute, rend, ralarm, (endtype, alarmtype))