From: NeilBrown Date: Tue, 31 Dec 2013 00:44:03 +0000 (+1100) Subject: ical: allow printing part of an infinite list of dates X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=aa9b2b685c69550fdf91ae1817fc742f06b576fb;p=plato.git ical: allow printing part of an infinite list of dates We limit to 100 for now. --- diff --git a/lib/ical.py b/lib/ical.py index d31df50..d7fadd6 100644 --- a/lib/ical.py +++ b/lib/ical.py @@ -610,12 +610,12 @@ byaction = { 'BYSECOND': [ -1, 1, 1, 1, 1, 1, 1], } -def make_dates(start, rr): +def make_dates(start, rr, max): ret = [] last = start next = last s = date_seq(start, rr.interval, rr.step) - while (rr.count != None and len(ret) < rr.count) or (rr.end != None and last.before(rr.end)): + while (rr.count == None or len(ret) < rr.count) and (rr.end == None or last.before(rr.end)) and len(ret) < max: n1 = [ copy.copy(next) ] for bn in byorder: if bn not in rr.bylist: @@ -732,7 +732,7 @@ for arg in sys.argv[1:]: m = [] if start and rr: - m = make_dates(start, rr) + m = make_dates(start, rr, 100) if rdate: m.extend(rdate) m = sort_and_trim(m)