File size: 1,717 Bytes
87fe461 bcb8af1 87fe461 6e61d26 87fe461 bcb8af1 6e61d26 87fe461 6e61d26 87fe461 6e61d26 bcb8af1 6e61d26 bcb8af1 6e61d26 87fe461 bcb8af1 6e61d26 ab818d6 bcb8af1 87fe461 6e61d26 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import streamlit as st
def select_int_interval(param_name, limits_list, defaults, **kwargs):
st.sidebar.subheader(param_name)
min_max_interval = st.sidebar.slider(
"", limits_list[0], limits_list[1], defaults, key=hash(param_name)
)
return min_max_interval
def select_several_ints(
param_name, subparam_names, limits_list, defaults_list, **kwargs
):
st.sidebar.subheader(param_name)
result = []
assert len(limits_list) == len(defaults_list)
assert len(subparam_names) == len(defaults_list)
for name, limits, defaults in zip(subparam_names, limits_list, defaults_list):
result.append(
st.sidebar.slider(
name, limits[0], limits[1], defaults, key=hash(param_name + name)
)
)
return tuple(result)
def select_several_RGB(param_name, **kwargs):
result = select_several_ints(
param_name,
subparam_names=["Red", "Green", "Blue"],
limits_list=[[0, 255], [0, 255], [0, 255]],
defaults_list=[0, 0, 0],
)
return tuple(result)
def select_radio(param_name, options_list, **kwargs):
st.sidebar.subheader(param_name)
result = st.sidebar.radio("", options_list)
if isinstance(options_list[0], str):
result = '"' + result + '"'
return result
def select_checkbox(param_name, defaults, **kwargs):
st.sidebar.subheader(param_name)
result = st.sidebar.checkbox("True", defaults)
return result
# dict from param name to function showing this param
param2func = {
"int_interval": select_int_interval,
"several_ints": select_several_ints,
"radio": select_radio,
"rgb": select_several_RGB,
"checkbox": select_checkbox,
}
|