def rrulestr_to_schedule(rrule_str, dtstart=None):
rrstr = rrule.rrulestr(rrule_str, dtstart=dtstart)
if hasattr(rrstr, '_freq'):
return [rrule_to_schedule(rrule.rrulestr(rrule_str, dtstart=dtstart), dtstart)]
elif hasattr(rrstr, '_rrule'):
output = [rrule_to_schedule(r, dtstart) for r in rrstr._rrule]
exceptions = []
extras = []
if hasattr(rrstr, '_rdate') and rrstr._rdate:
extras.extend(_list(map(lambda d: datetime.datetime.strftime(d, '%a %x'), rrstr._rdate)))
output = [x._replace(extras="".join(extras)) for x in output]
if hasattr(rrstr, '_exdate') and rrstr._exdate:
exceptions.extend(_list(map(lambda d: datetime.datetime.strftime(d, DATE_FORMAT), rrstr._exdate)))
output = [x._replace(exceptions="".join(exceptions)) for x in output]
return output
评论列表
文章目录