|
- #!/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.path, e.src.layout)
- print "Destination %s doesn't exist" % (e.dest.path)
- print "You could make it with a command like:"
- print " nilmtool -u %s create %s %s" % (e.dest.url,
- e.dest.path, e.src.layout)
- raise SystemExit(1)
-
- # Copy metadata
- meta = f.client_src.stream_get_metadata(f.src.path)
- f.check_dest_metadata(meta)
-
- # Copy all rows of data as ASCII strings
- extractor = nilmdb.client.Client(f.src.url).stream_extract
- inserter = nilmdb.client.Client(f.dest.url).stream_insert_context
- for i in f.intervals():
- print "Processing", f.interval_string(i)
- with inserter(f.dest.path, i.start, i.end) as insert_ctx:
- for row in extractor(f.src.path, i.start, i.end):
- insert_ctx.insert(row + "\n")
-
- if __name__ == "__main__":
- main()
|