Browse Source

Split filter.py internals up a little more

This makes it easier to use the filter stuff from other code, but it's
also turning it into more of a spaghetti nightmare.  Might not be
worth continuing down this path.
tags/nilmtools-1.3.1
Jim Paris 10 years ago
parent
commit
57d856f2fa
1 changed files with 34 additions and 24 deletions
  1. +34
    -24
      nilmtools/filter.py

+ 34
- 24
nilmtools/filter.py View File

@@ -20,6 +20,9 @@ import argparse
import numpy as np
import cStringIO

class ArgumentError(Exception):
pass

class MissingDestination(Exception):
def __init__(self, args, src, dest):
self.parsed_args = args
@@ -139,43 +142,50 @@ class Filter(object):
timestamp_to_human(interval.start),
timestamp_to_human(interval.end))

def parse_args(self, argv = None):
args = self._parser.parse_args(argv)
if args.dest_url is None:
args.dest_url = args.url
if args.url != args.dest_url:
def set_args(self, url, dest_url, srcpath, destpath, start, end,
parsed_args = None, quiet = True):
"""Set arguments directly from parameters"""
if dest_url is None:
dest_url = url
if url != dest_url:
self.interhost = True

self._client_src = Client(args.url)
self._client_dest = Client(args.dest_url)
self._client_src = Client(url)
self._client_dest = Client(dest_url)

if (not self.interhost) and (args.srcpath == args.destpath):
self._parser.error("source and destination path must be different")
if (not self.interhost) and (srcpath == destpath):
raise ArgumentError("source and destination path must be different")

# Open and print info about the streams
self.src = get_stream_info(self._client_src, args.srcpath)
# Open the streams
self.src = get_stream_info(self._client_src, srcpath)
if not self.src:
self._parser.error("source path " + args.srcpath + " not found")
raise ArgumentError("source path " + srcpath + " not found")

self.dest = get_stream_info(self._client_dest, args.destpath)
self.dest = get_stream_info(self._client_dest, destpath)
if not self.dest:
raise MissingDestination(args, self.src,
StreamInfo(args.dest_url, [args.destpath]))
raise MissingDestination(parsed_args, self.src,
StreamInfo(dest_url, [destpath]))

self.start = start
self.end = end

# Print info
if not quiet:
print "Source:", self.src.string(self.interhost)
print " Dest:", self.dest.string(self.interhost)

def parse_args(self, argv = None):
"""Parse arguments from a command line"""
args = self._parser.parse_args(argv)

print "Source:", self.src.string(self.interhost)
print " Dest:", self.dest.string(self.interhost)
self.set_args(args.url, args.dest_url, args.srcpath, args.destpath,
args.start, args.end, quiet = False, parsed_args = args)

self.force_metadata = args.force_metadata
if args.dry_run:
for interval in self.intervals():
print self.interval_string(interval)
raise SystemExit(0)

self.force_metadata = args.force_metadata

self.start = args.start
self.end = args.end

return args

def _optimize_int(self, it):


Loading…
Cancel
Save