|
|
@@ -188,19 +188,6 @@ class Filter(object): |
|
|
|
raise SystemExit(0) |
|
|
|
return args |
|
|
|
|
|
|
|
def _optimize_int(self, it): |
|
|
|
"""Join and yield adjacent intervals from the iterator 'it'""" |
|
|
|
saved_int = None |
|
|
|
for interval in it: |
|
|
|
if saved_int is not None: |
|
|
|
if saved_int.end == interval.start: |
|
|
|
interval.start = saved_int.start |
|
|
|
else: |
|
|
|
yield saved_int |
|
|
|
saved_int = interval |
|
|
|
if saved_int is not None: |
|
|
|
yield saved_int |
|
|
|
|
|
|
|
def intervals(self): |
|
|
|
"""Generate all the intervals that this filter should process""" |
|
|
|
self._using_client = True |
|
|
@@ -227,7 +214,7 @@ class Filter(object): |
|
|
|
self.src.path, diffpath = self.dest.path, |
|
|
|
start = self.start, end = self.end) ) |
|
|
|
# Optimize intervals: join intervals that are adjacent |
|
|
|
for interval in self._optimize_int(intervals): |
|
|
|
for interval in nilmdb.utils.interval.optimize(intervals): |
|
|
|
yield interval |
|
|
|
self._using_client = False |
|
|
|
|
|
|
|