def get(self, start, end=None): # TODO: Don't let this code survive!! assertDateOrNone('start', start) assertDateOrNone('end', end) def extract(line): items = line.rstrip().split(';') return { 'datetime': parseLocalTime(items[0]+':00', items[1]=='S'), 'ae': items[2] } if not end: end = toLocal(datetime.datetime.now()).date() with open(self.res, 'rb') as csvfile: content = csvfile.readlines() return [ [ measure for measure in ( extract(line) for line in content[1:] ) if measure['datetime'].date() == date # TODO: la mare dels ous ] for date in daterange(start, end + datetime.timedelta(days=1)) ]
def update_kwh(self, start=None, end=None , notifier=None): import datetime assertDateOrNone('start', start) assertDateOrNone('end', end) if start is None: start = self.lastcommit provider = get_provider(self.uri) updated = None with provider(self.uri) as remote: status = 'done' message = None try: for day in remote.get(start, end): for measurement in day: self.curveProvider.fillPoint( name = self.name, datetime = measurement['datetime'], ae = measurement['ae'] ) updated = measurement['datetime'] except Exception as e: status = 'failed' message = str(e) finally: if notifier: notifier.push(self.id, status, message) return updated
def update_kwh(self, start=None, end=None, notifier=None): assertDateOrNone('start', start) assertDateOrNone('end', end) return [(meter.id, meter.update_kwh(start, end, notifier)) for meter in self.meters]
def update_kwh(self, start=None, end=None, notifier=None): assertDateOrNone('start', start) assertDateOrNone('end', end) return [(plant.id, plant.update_kwh(start, end, notifier)) for plant in self.plants]