You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

37 lines
1.1 KiB

  1. #!/usr/bin/python
  2. import nilmtools.filter
  3. import nilmdb.client
  4. import numpy as np
  5. import sys
  6. def main():
  7. f = nilmtools.filter.Filter()
  8. parser = f.setup_parser("Copy a stream")
  9. # Parse arguments
  10. try:
  11. args = f.parse_args()
  12. except nilmtools.filter.MissingDestination as e:
  13. print "Source is %s (%s)" % (e.src, e.layout)
  14. print "Destination %s doesn't exist" % (e.dest)
  15. print "You could make it with a command like:"
  16. print " nilmtool create", e.dest, e.layout
  17. raise SystemExit(1)
  18. # Copy metadata
  19. meta = f.client.stream_get_metadata(args.srcpath)
  20. f.check_dest_metadata(meta)
  21. # Copy all rows of data as ASCII strings
  22. extractor = nilmdb.client.Client(args.url).stream_extract
  23. inserter = nilmdb.client.Client(args.url).stream_insert_context
  24. for (start, end) in f.intervals():
  25. print "Processing", f.interval_string((start, end))
  26. with inserter(args.destpath, start, end) as insert_ctx:
  27. for row in extractor(args.srcpath, start, end):
  28. insert_ctx.insert(row + "\n")
  29. if __name__ == "__main__":
  30. main()