from nilmdb.utils.printf import * import nilmdb.client def setup(self, sub): cmd = sub.add_parser("remove", help="Remove data", description=""" Remove all data from a specified time range within a stream. """) cmd.set_defaults(handler = cmd_remove) group = cmd.add_argument_group("Data selection") group.add_argument("path", help="Path of stream, e.g. /foo/bar", ).completer = self.complete.path group.add_argument("-s", "--start", required=True, metavar="TIME", type=self.arg_time, help="Starting timestamp (free-form, inclusive)", ).completer = self.complete.time group.add_argument("-e", "--end", required=True, metavar="TIME", type=self.arg_time, help="Ending timestamp (free-form, noninclusive)", ).completer = self.complete.time group = cmd.add_argument_group("Output format") group.add_argument("-c", "--count", action="store_true", help="Output number of data points removed") return cmd def cmd_remove(self): try: count = self.client.stream_remove(self.args.path, self.args.start, self.args.end) except nilmdb.client.ClientError as e: self.die("error removing data: %s", str(e)) if self.args.count: printf("%d\n", count) return 0