Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [alarm1]
- time = 8:00
- days = MO
- [alarm2]
- time = 9:00
- days = TU, WE
- [alarm3]
- time = 22:00
- days = MO, WE, FR
- etc..
- from dateutil.rrule import *
- from dateutil.parser import *
- import datetime
- import configparser
- alarms = rruleset()
- time = parse(alarm_parser.get(alarm_section, 'time')).time()
- date = datetime.date.today()
- alarm_time= datetime.datetime.combine(date, time)
- days = '(' + alarm_parser.get(alarm_section, 'days') + ',)'
- alarm_days = eval(days)
- alarms.rrule(rrule(WEEKLY, dtstart = alarm_datetime, byweekday = alarm_days, count = 1))
- ValueError: malformed node or string: <_ast.Name object at 0xb68e2430>
- from dateutil.rrule import MO, TU, WE, TH, FR, SA, SU
- daymap = {'MO': MO, 'TU': TU, 'WE': WE, 'TH': TH, 'FR': FR, 'SA': SA, 'SU': SU}
- daystr = 'TU, TH'
- days = [daymap[day.strip()] for day in daystr.split(',')]
- from dateutil.rrule import rrulestr
- base_rrstr = ('DTSTART:{alarm_datetime:%Y%m%dT%H%M%S}n' +
- 'FREQ={freq_str};COUNT={count_str};BYDAY={day_str}')
- alarm_datetime = datetime.datetime.today()
- freq_str = "WEEKLY"
- count_str = "1"
- day_str = "TU,TH"
- crr = rrulestr(base_rrstr.format(alarm_datetime=alarm_datetime,
- freq_str=freq_str,
- count_str=count_str,
- day_str=day_str))
- import re
- from dateutil.rrule import MO, TU, WE, TH, FR, SA, SU
- _daymap = {"MO": MO, "TU": TU, "WE": WE, "TH": TH, "FR": FR, "SA": SA, "SU": SU}
- _dayre = re.compile(r"(MO|TU|WE|TH|FR|SA|SU)(?=(([-+]?[0-9]+)))?")
- def parsedays(daystr):
- for day in daystr.split(","):
- m = _dayre.match(day.strip())
- if m:
- weekday, offset = m.groups()
- result = _daymap[weekday]
- if offset:
- result = result(int(offset))
- yield result
- def dumpdays(days):
- return ",".join(str(d) for d in days)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement