def main(): parser = get_parser() args = parser.parse_args() logging.basicConfig(filename=args.log, level=logging.DEBUG) log = logging.getLogger(__name__) device_files = [os.path.abspath(os.path.join(args.dir, p)) for p in os.listdir(args.dir)] for dev_path in args.devices: try: device_files.remove(os.path.abspath(dev_path)) dev_data = TimeSeries(os.path.basename(dev_path).split('.')[0], path=os.path.abspath(dev_path)) dev_data.pad(600) dev_data.write(os.path.join(args.out, dev_data.name + '.dat')) except ValueError: log.error('Unable to find device file %s under %s' % (dev_path, args.dir)) for agg_path in args.aggregated: try: device_files.remove(os.path.abspath(agg_path)) except ValueError: log.warning('Unable to find aggregated power file %s under %s' % (agg_path, args.dir)) agg_data = TimeSeries(path=os.path.abspath(args.aggregated[0])) agg_data.pad(600) for agg_path in args.aggregated[1:]: agg_in = TimeSeries(path=os.path.abspath(agg_path)) agg_in.pad(600) agg_data += agg_in for dev_path in device_files: dev_data = TimeSeries(path=dev_path) dev_data.pad(600) agg_data -= dev_data agg_data.write(os.path.join(args.out, 'aggregate.dat')) return 0