Compare commits

...

2 Commits

Author SHA1 Message Date
bd7bdb2eb8 Add --optimize option to nilmtool intervals 2013-07-30 15:31:51 -04:00
840cd2fd13 Remove stray print 2013-07-30 15:21:09 -04:00
3 changed files with 25 additions and 4 deletions

View File

@@ -1,5 +1,6 @@
from nilmdb.utils.printf import * from nilmdb.utils.printf import *
import nilmdb.utils.time import nilmdb.utils.time
from nilmdb.utils.interval import Interval
import fnmatch import fnmatch
import argparse import argparse
@@ -42,6 +43,8 @@ def setup(self, sub):
group = cmd.add_argument_group("Misc options") group = cmd.add_argument_group("Misc options")
group.add_argument("-T", "--timestamp-raw", action="store_true", group.add_argument("-T", "--timestamp-raw", action="store_true",
help="Show raw timestamps when printing times") help="Show raw timestamps when printing times")
group.add_argument("-o", "--optimize", action="store_true",
help="Optimize (merge adjacent) intervals")
return cmd return cmd
@@ -58,9 +61,16 @@ def cmd_intervals(self):
time_string = nilmdb.utils.time.timestamp_to_human time_string = nilmdb.utils.time.timestamp_to_human
try: try:
for (start, end) in self.client.stream_intervals( intervals = ( Interval(start, end) for (start, end) in
self.args.path, self.args.start, self.args.end, self.args.diff): self.client.stream_intervals(self.args.path,
printf("[ %s -> %s ]\n", time_string(start), time_string(end)) self.args.start,
self.args.end,
self.args.diff) )
if self.args.optimize:
intervals = nilmdb.utils.interval.optimize(intervals)
for i in intervals:
printf("[ %s -> %s ]\n", time_string(i.start), time_string(i.end))
except nilmdb.client.ClientError as e: except nilmdb.client.ClientError as e:
self.die("error listing intervals: %s", str(e)) self.die("error listing intervals: %s", str(e))

View File

@@ -1011,6 +1011,18 @@ class TestCmdline(object):
self.match("[ Thu, 01 Jan 2004 00:00:00.000000 +0000 -" self.match("[ Thu, 01 Jan 2004 00:00:00.000000 +0000 -"
"> Sat, 01 Jan 2005 00:00:00.000000 +0000 ]\n") "> Sat, 01 Jan 2005 00:00:00.000000 +0000 ]\n")
# optimize
self.ok("insert -s 01-01-2002 -e 01-01-2004 /diff/1 /dev/null")
self.ok("intervals /diff/1")
self.match("[ Sat, 01 Jan 2000 00:00:00.000000 +0000 -"
"> Thu, 01 Jan 2004 00:00:00.000000 +0000 ]\n"
"[ Thu, 01 Jan 2004 00:00:00.000000 +0000 -"
"> Sat, 01 Jan 2005 00:00:00.000000 +0000 ]\n")
self.ok("intervals /diff/1 --optimize")
self.ok("intervals /diff/1 -o")
self.match("[ Sat, 01 Jan 2000 00:00:00.000000 +0000 -"
"> Sat, 01 Jan 2005 00:00:00.000000 +0000 ]\n")
self.ok("destroy -R /diff/1") self.ok("destroy -R /diff/1")
self.ok("destroy -R /diff/2") self.ok("destroy -R /diff/2")

View File

@@ -110,6 +110,5 @@ class TestSerializer(Base):
def test_iter(self): def test_iter(self):
sp = nilmdb.utils.serializer_proxy sp = nilmdb.utils.serializer_proxy
i = sp(ListLike)() i = sp(ListLike)()
print iter(i)
eq_(list(i), [1,2,3,4,5]) eq_(list(i), [1,2,3,4,5])
eq_(i[3], 3) eq_(i[3], 3)