Esempio n. 1
0
                }

        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 disconnect(self):
        pass

    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        pass

register("csv", CSVProvider)

# vim: et ts=4 sw=4
Esempio n. 2
0
            self.date_fmt.format(**locals())).content

    def extract(self, date, content):
        import xlrd
        sheets = [u'Dades Instantaneas', u'Corba de carrega', u'Sondes', u'Dades Resumides']
        book = xlrd.open_workbook(file_contents=content)
        if book.nsheets != 4 or set(book.sheet_names()) != set(self.sheet_names): 
            raise Exception('Failed parsing data')
       
        sheet = book.sheet_by_name('Dades Resumides')
        var_names = [cell.value for cell in sheet.row(0)]
        if sheet.ncols != 4 or sheet.nrows != 25 or set(var_names) != set(self.var_names): 
            raise Exception('Corruputed data')
        return [{'datetime': datetime.datetime.combine(date,datetime.time.min)+datetime.timedelta(hours=3),
                 'ae': sheet.row(idx)[1].value} 
                     for idx in range(1,25)] 

    def get(self, start, end=None):
        return [self.extract(date, self.download(date)) for date in daterange(start, end)]

    def disconnect(self):
        pass

    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        pass

register("tfm", TFMProvider)
Esempio n. 3
0
                client.cwd(self.res['path'])
                client.retrbinary('RETR ' + filename, callback=sio.write)
            except Exception as e:
                raise BaseProviderDownloadError('Failed downloading %s' % filename)
            finally:
                client.quit()

            sio.seek(0)
            return sio.read().splitlines()

    def get(self, start, end):
        assert start is None or type(start)==datetime.date, (
            "start date should be a date but is {}".format(start))
        assert end is None or type(end)==datetime.date, (
            "start date should be a date but is {}".format(end))

        if not end:
            end = toLocal(datetime.datetime.now()).date()
        return [self.extract(self.download(date), date) for date in daterange(start, end)]

    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        pass

register("monsol", MonsolProvider)


# vim: et ts=4 sw=4