Hello
I understand that streamlit rerun script from top-to-bottom. I am using python and after running the streamlit web app for awhile it will throw the Recursion Error: maximum recursion depth exceeded while calling a Python object error. I also understand that I could actually increase python’s recursion limit however it is not advisable. Does the rerun every time causes the recursion error? how can i avoid this recursion error? Please help:)
import streamlit as st
selected_flavour = None
selected_sugar = Noneselected_tea = st.radio(“Type of Tea:”, (‘Black Tea’, ‘Red Tea’, ‘Green Tea’, ‘Oolong Tea’))
if selected_tea == ‘Black Tea’:
selected_flavour = st.selectbox( ‘Flavour:’, (‘Grapefruit’, ‘Honey’))
selected_sugar = st.selectbox( ‘Sugar Level:’, (‘50%’, ‘100%’))if selected_tea == ‘Red Tea’:
selected_flavour = st.selectbox( ‘Flavour:’, (‘Lychee’, ‘Orange’))
selected_sugar = st.selectbox( ‘Sugar Level:’, (‘50%’, ‘100%’))if selected_tea == ‘Green Tea’:
selected_flavour = st.selectbox( ‘Flavour:’, (‘Lemon’, ‘Melon’))
selected_sugar = st.selectbox( ‘Sugar Level:’, (25%, ‘50%’, ‘100%’))if selected_tea == ‘Oolong Tea’:
selected_flavour = st.selectbox( ‘Flavour:’, (‘Honey’, ‘Pineapple’))
selected_sugar = st.selectbox( ‘Sugar Level:’, (0%, ‘50%’, ‘100%’))order=st.button(“Order”)
if order:
t= threading.Thread(target=place_order, args=[selected_tea, selected_flavour, selected_sugar])
t.start()#display orders
place_order(selected_tea, selected_flavour, selected_sugar)
st.experimental_rerun()
def place_order(selected_tea,
selected_flavour, selected_sugar ):
list = add_to_list(selected_tea, selected_flavour, selected_sugar)
order_id, order_time, order_collected= >st.columns([1, 1, 1])
for id, drink in enumerate(list, start=0):
with order_id:
order_id.text(drink.name)
with order_time:
order_time(drink.time)
with order_collected:
order_collected.button(“collect”)
Thanks