#!/usr/bin/python import nilmtools.filter import nilmdb.client import numpy as np import sys def main(): f = nilmtools.filter.Filter() parser = f.setup_parser("Copy a stream") # Parse arguments try: args = f.parse_args() except nilmtools.filter.MissingDestination as e: print "Source is %s (%s)" % (e.src, e.layout) print "Destination %s doesn't exist" % (e.dest) print "You could make it with a command like:" print " nilmtool create", e.dest, e.layout raise SystemExit(1) # Copy metadata meta = f.client.stream_get_metadata(args.srcpath) f.check_dest_metadata(meta) # Copy all rows of data as ASCII strings extractor = nilmdb.client.Client(args.url).stream_extract inserter = nilmdb.client.Client(args.url).stream_insert_context for (start, end) in f.intervals(): print "Processing", f.interval_string((start, end)) with inserter(args.destpath, start, end) as insert_ctx: for row in extractor(args.srcpath, start, end): insert_ctx.insert(row + "\n") if __name__ == "__main__": main()