1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/imiptools/period.py Tue Oct 21 19:58:20 2014 +0200
1.3 @@ -0,0 +1,28 @@
1.4 +#!/usr/bin/env python
1.5 +
1.6 +from bisect import bisect_left, insort_left
1.7 +
1.8 +# Time management.
1.9 +
1.10 +def insert_period(freebusy, period):
1.11 + insort_left(freebusy, period)
1.12 +
1.13 +def remove_period(freebusy, uid):
1.14 + i = 0
1.15 + while i < len(freebusy):
1.16 + t = freebusy[i]
1.17 + if len(t) >= 3 and t[2] == uid:
1.18 + del freebusy[i]
1.19 + else:
1.20 + i += 1
1.21 +
1.22 +def period_overlaps(freebusy, period):
1.23 + dtstart, dtend = period[:2]
1.24 + i = bisect_left(freebusy, (dtstart, dtend, None))
1.25 + return (
1.26 + i < len(freebusy) and (dtend is None or freebusy[i][0] < dtend)
1.27 + or
1.28 + i > 0 and freebusy[i - 1][1] > dtstart
1.29 + )
1.30 +
1.31 +# vim: tabstop=4 expandtab shiftwidth=4