#!/usr/bin/env python DBURL = 'postgresql://sheeva:pass@localhost/sheeva' import datetime as dt from argparse import ArgumentParser from faker import Faker import psycopg2 if __name__ == '__main__': parser = ArgumentParser(description='generate data') parser.add_argument('--start', '-s', type=int, default=2019, help='from year') parser.add_argument('--end', '-e', type=int, default=2019, help='to year') args = parser.parse_args() conn = psycopg2.connect(DBURL) curs = conn.cursor() curs.execute('''DROP TABLE IF EXISTS gen; CREATE TABLE gen(int SERIAL PRIMARY KEY, ts TIMESTAMP, temp REAL, heat REAL);''') conn.commit() start = dt.datetime(args.start, 1, 1, 0, 0, 0) end = dt.datetime(args.end, 12, 31, 23, 59, 59) delta = dt.timedelta(minutes=1) #print(start, end, delta) faker = Faker() Faker.seed(0) curs = conn.cursor() now = start - delta while (now := now + delta) < (end + delta): temp = faker.pyfloat(min_value=-20.0, max_value=35.0) heat = faker.pyfloat(min_value=-20.0, max_value=100.0) if heat < 0.0: heat = 0.0 curs.execute('''INSERT INTO gen(ts, temp, heat) VALUES (%s, %s, %s)''', (now, temp, heat)) curs.close() conn.commit() conn.close()