Newer
Older
notebooks / timeline_editor / digitspan_block.py
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()