def parse_time_range_list(times): r"""Parse a multi-line string into a list of time slots. One slot per line (HH:MM - HH:MM). Empty lines are ignored. Extra spaces are stripped. >>> parse_time_range_list(u' 9:30 - 10:25 \n \n 12:30 - 13:25 \n') [(datetime.time(9, 30), datetime.timedelta(0, 3300)), (datetime.time(12, 30), datetime.timedelta(0, 3300))] >>> parse_time_range_list(u' \n\n ') [] >>> parse_time_range_list(u'') [] >>> parse_time_range_list(u'9:30-12:20\nbad value\nanother bad value') Traceback (most recent call last): ... ValueError: bad value """ result = [] for line in times.splitlines(): line = line.strip() if line: try: result.append(parse_time_range(line)) except ValueError: raise ValueError(line) return result
def __init__(self, time="00:00-00:15", year=2011, month=10, day=30, timezone="UTC"): timezone = pytz.timezone(timezone) timestart, duration = parse_time_range(time) self.dtstart = timezone.localize(datetime.datetime( year, month, day, timestart.hour, timestart.minute)) self.duration = duration
def __init__(self, time="00:00-00:15", year=2011, month=10, day=30, timezone="UTC"): timezone = pytz.timezone(timezone) timestart, duration = parse_time_range(time) self.dtstart = timezone.localize( datetime.datetime(year, month, day, timestart.hour, timestart.minute)) self.duration = duration