olsndot/doc/spectrum_progress.py

36 lines
1 KiB
Python

#!/usr/bin/env python3
import sqlite3
import argparse
import time
import tqdm
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-d', '--database', nargs='?', default='spectra.sqlite3')
parser.add_argument('-u', '--update-delay', nargs='?', type=float, default=1.0)
parser.add_argument('max_step', nargs='?', type=int, default=250)
args = parser.parse_args()
db = sqlite3.connect(args.database)
def current_step():
step, = db.execute(
'SELECT MAX(step) FROM measurements WHERE run_id = (SELECT MAX(run_id) FROM runs)'
).fetchone()
return int(step)
def step_gen():
while True:
step = current_step()
yield step
if step >= args.max_step:
break
time.sleep(args.update_delay)
bar = tqdm.tqdm(total=args.max_step)
while True:
try:
for step in step_gen():
bar.update(step - bar.n)
except:
time.sleep(args.update_delay)