import streamlit as st import json from enum import Enum class HudWidgetPosition(Enum): Hidden = "Hidden" StatusBarLeft = "Status bar (left)" StatusBarCenter = "Status bar (center)" StatusBarRight = "Status bar (right)" InformationPanel = "Information Panel" class DigitSpanBlock(): Name = "Woods2011" InterstimulusInterval = 1 RetentionDelay = 1 BlockCounterPosition: HudWidgetPosition = HudWidgetPosition.Hidden def __init__(self): st.title("DigitSpan - Block Generator") self.InterstimulusInterval = st.sidebar.number_input( "Interstimulus Interval (millis)", min_value=0, step=1) self.RetentionDelay = st.sidebar.number_input( "Retention Delay (millis)", min_value=0, step=1) self.BlockCounterPosition = self.enum_input("Block Counter Position", self.BlockCounterPosition) # show output json st.header("") st.json(json.dumps(self.__dict__)) def enum_input(self, text, param): options = list(map(lambda e: e.name, param.__class__)) widget = st.sidebar.selectbox( text, options, format_func=lambda k: param.__class__[k].value) return widget if __name__ == "__main__": app = DigitSpanBlock()