test-hydralit / apps /load_app.py
SaulLu's picture
add app
5e3a6e4
import streamlit as st
import hydralit_components as hc
import time
from hydralit import HydraHeadApp
class LoaderTestApp(HydraHeadApp):
def __init__(self, title = 'Loader Playground', delay=0, **kwargs):
self.__dict__.update(kwargs)
self.title = title
self.delay = delay
def run(self):
single_loader_list={
'pacman':{'loader': hc.Loaders.pacman,'length': 0},
'points_line':{'loader': hc.Loaders.points_line,'length': 0},
'grid_points':{'loader': hc.Loaders.grid_points,'length': 0},
'pulse_bars':{'loader': hc.Loaders.pulse_bars,'length': 0},
'showcase_pretty':{'loader': hc.Loaders.showcase_pretty,'length': 0}
}
multi_loader_list={
'standard_loaders': {'loader': hc.Loaders.standard_loaders,'length': 8},
'pretty_loaders': {'loader': hc.Loaders.pretty_loaders,'length': 15}
}
s,c1,c2,c3 = st.columns([2,4,4,4])
loader_delay = st.slider('Loader Display Time (sec)', 2, 20, 5)
loader_mixer = s.checkbox('Multi-select Loaders')
if loader_mixer:
loader_list = multi_loader_list
loader_replicat = s.checkbox('Enable Loader Replication')
selected_loader = c1.selectbox('Select Loader',loader_list.keys())
if loader_replicat:
loader_index = c2.selectbox('Loader index',list(range(loader_list[selected_loader]['length'])))
loader_rep = c3.selectbox('Loader Replication',[1,2,3,4,5,6,7,8,9,10])
loader_index=[loader_index]*loader_rep
else:
loader_index = c2.multiselect('Loader indexes',list(range(loader_list[selected_loader]['length'])))
else:
loader_list = single_loader_list
loader_index = 0
selected_loader = c1.selectbox('Select Loader',loader_list.keys())
b,c, = st.columns([3,7])
if b.button('Unleash the Loader!'):
with hc.HyLoader('Now doing loading',loader_list[selected_loader]['loader'],index=loader_index):
time.sleep(loader_delay)
cex = c.expander('Show Code')
cex.code(
"""
import hydralit_components as hc
single_loader_list={
'pacman': hc.Loaders.pacman
'points_line': hc.Loaders.points_line
'grid_points': hc.Loaders.grid_points
'pulse_bars': hc.Loaders.pulse_bars
'showcase_pretty': hc.Loaders.showcase_pretty
}
multi_loader_list={
'standard_loaders': hc.Loaders.standard_loaders,
'pretty_loaders': hc.Loaders.pretty_loaders
}
# a dedicated single loader
with hc.HyLoader('Now doing loading',single_loader_list['pacman'],):
time.sleep(loader_delay)
# for 3 loaders from the standard loader group
with hc.HyLoader('Now doing loading',multi_loader_list['standard_loaders'],index=[3,0,5]):
time.sleep(loader_delay)
# for 1 (index=5) from the standard loader group
with hc.HyLoader('Now doing loading',multi_loader_list['standard_loaders'],index=5):
time.sleep(loader_delay)
# for 4 replications of the same loader (index=2) from the standard loader group
with hc.HyLoader('Now doing loading',multi_loader_list['standard_loaders'],index=[2,2,2,2]):
time.sleep(loader_delay)
"""
)