# HG changeset patch # User Paul Boddie # Date 1508001043 -7200 # Node ID cadb986c2dec16692e0bf563b06eaf1352b5badc # Parent 644b7e2590595de06a964a3c949465d0d0fad573 Added a function that identifies overlapping periods within a collection. diff -r 644b7e259059 -r cadb986c2dec imiptools/period.py --- a/imiptools/period.py Sat Oct 14 19:10:09 2017 +0200 +++ b/imiptools/period.py Sat Oct 14 19:10:43 2017 +0200 @@ -408,6 +408,31 @@ overlapping.sort() return overlapping +def get_overlapping_members(periods): + + "Return members of the 'periods' collection that overlap with others." + + if not periods: + return [] + + l = periods[:] + l.sort() + + overlapping = [] + + last = l[0] + last_added = None + + for p in l[1:]: + if p.get_start_point() < last.get_end_point(): + if last_added != last: + overlapping.append(last) + overlapping.append(p) + last_added = p + last = p + + return overlapping + # Period layout. def get_scale(periods, tzid, view_period=None):