|
- #!/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()
|