change storing configuration
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"""
|
||||
|
||||
"""
|
||||
# binding propagation for 7 active links took 0.013 s
|
||||
import os
|
||||
import numpy as np
|
||||
import time
|
||||
@@ -30,7 +31,7 @@ pio.templates["plotly_light"].layout['yaxis']['gridcolor'] = 'lightgray'
|
||||
pio.templates["plotly_light"].layout['yaxis']['zerolinecolor'] = 'lightgray'
|
||||
|
||||
ELM = {
|
||||
'name': 'tempplot',
|
||||
'name': 'tempview',
|
||||
'filedir': './data',
|
||||
'filename': None,
|
||||
'label_file_fmt': 'File: {filename}',
|
||||
@@ -43,6 +44,43 @@ ELM = {
|
||||
'update_timeout': 1.0,
|
||||
'label_update_last_fmt': 'Last refresh: {last}',
|
||||
}
|
||||
SK = ['dark_mode', 'time_range', 'timer', 'filename']
|
||||
SKFB = [False, 6.0, False, None]
|
||||
|
||||
def set(key, value):
|
||||
ELM[key] = value
|
||||
# app.storage.user[key] = value
|
||||
# app.storage.tab[key] = value
|
||||
return value
|
||||
|
||||
def get(key):
|
||||
return ELM[key]
|
||||
|
||||
def save(k, v):
|
||||
app.storage.tab[k] = v
|
||||
return v
|
||||
|
||||
def load(k, fb=None):
|
||||
return app.storage.tab.get(k, fb)
|
||||
|
||||
# def load(k=None, fb=None):
|
||||
# if k is None:
|
||||
# ks = SK
|
||||
# elif isinstance(k, str):
|
||||
# ks = [k]
|
||||
# else:
|
||||
# ks = k
|
||||
|
||||
# if fb is None:
|
||||
# fbs = SKFB
|
||||
# elif isinstance(fb, str):
|
||||
# fbs = [fb]
|
||||
# else:
|
||||
# fbs = fb
|
||||
|
||||
# for k, fb in zip(ks, fbs):
|
||||
# # ELM[k] = app.storage.user.get(k, None)
|
||||
# ELM[k] = app.storage.tab.get(k, fb)
|
||||
|
||||
def main_cli():
|
||||
import argparse
|
||||
@@ -87,14 +125,16 @@ def np2pgo(x, y, label=None):
|
||||
res.update({'name': label})
|
||||
return res
|
||||
|
||||
def fntl():
|
||||
if ELM['filename'] is not None:
|
||||
return os.path.relpath(ELM['filename'], ELM['filedir'])
|
||||
def fntl(filename, filedir):
|
||||
# if ELM['filename'] is not None:
|
||||
# return os.path.relpath(ELM['filename'], ELM['filedir'])
|
||||
if filename is not None and filename and filedir is not None:
|
||||
return os.path.relpath(filename, filedir)
|
||||
|
||||
def fnttt():
|
||||
def fnttt(filename):
|
||||
res = None
|
||||
if ELM['filename'] is not None:
|
||||
fn = os.path.basename(ELM['filename'])
|
||||
if filename is not None and filename:
|
||||
fn = os.path.basename(filename)
|
||||
n = len(fn)
|
||||
if n == 18:
|
||||
res = f'{fn[:4]}-{fn[4:6]}-{fn[6:8]} {fn[8:10]}:{fn[10:12]}:{fn[12:14]}'
|
||||
@@ -128,11 +168,12 @@ async def pick_file() -> None:
|
||||
# ui.notify(f'You chose {result}')
|
||||
if result:
|
||||
filename = result[-1]
|
||||
ELM['filename'] = filename
|
||||
# ELM['filename'] = filename
|
||||
save('filename', filename)
|
||||
# see timer below, but still here active b/c the time might be inactive
|
||||
ui.timer(0, lambda: update_data(), once=True)
|
||||
|
||||
def get_data(filename=ELM['filename']):
|
||||
def get_data(filename=None):
|
||||
data = None
|
||||
if filename is not None and os.path.isfile(filename):
|
||||
data = np.genfromtxt(fname=filename, skip_header=1, max_rows=2)
|
||||
@@ -154,7 +195,8 @@ async def update_data():
|
||||
if not app.storage.user['timer'] \
|
||||
or time.time() - ELM['update_last'] > ELM['update_timeout']:
|
||||
ELM['update_busy'] = True
|
||||
filename=ELM['filename']
|
||||
# filename=ELM['filename']
|
||||
filename = load('filename')
|
||||
t1 = time.time()
|
||||
data_all = await run.cpu_bound(get_data, filename)
|
||||
t2 = time.time()
|
||||
@@ -263,7 +305,15 @@ def update_fig():
|
||||
rangemode="nonnegative")
|
||||
|
||||
@ui.page('/')
|
||||
def index():
|
||||
async def index():
|
||||
await ui.context.client.connected()
|
||||
|
||||
# print(app.storage.browser.get('filename', None))
|
||||
# app.storage.browser['filename'] = 'foo'
|
||||
# print(app.storage.browser.get('filename', None))
|
||||
|
||||
print(app.storage.tab.get('filename', None))
|
||||
|
||||
# initialize objects
|
||||
pio.templates.default = 'plotly_dark'
|
||||
ELM['fig'] = prs.FigureResampler(pgo.Figure()).set_subplots(
|
||||
@@ -307,11 +357,12 @@ def index():
|
||||
).bind_value(app.storage.user, 'dark_mode').props('icon="dark_mode"')
|
||||
|
||||
with ui.row():
|
||||
ELM['label_file'] = ui.label(ELM['label_file_fmt'].format(filename=fntl())) \
|
||||
set('filename', load('filename'))
|
||||
ELM['label_file'] = ui.label(ELM['label_file_fmt'].format(filename=fntl(get('filename'), get('filedir')))) \
|
||||
.bind_text_from(ELM, 'filename',
|
||||
lambda filename: ELM['label_file_fmt'].format(filename=fntl()))
|
||||
lambda filename: ELM['label_file_fmt'].format(filename=fntl(get('filename'), get('filedir'))))
|
||||
ELM['label_file_tt'] = ui.tooltip(None) \
|
||||
.bind_text_from(ELM, 'filename', lambda filename: fnttt()) \
|
||||
.bind_text_from(ELM, 'filename', lambda filename: fnttt(get('filename'))) \
|
||||
.bind_visibility_from(ELM, 'filename', bool) \
|
||||
.move(ELM['label_file'])
|
||||
ELM['label_data_len'] = ui.label(ELM['label_data_len_fmt'].format(num=0, numa=0))
|
||||
|
||||
Reference in New Issue
Block a user