Fix StreamlitAPIException: use value= on sliders instead of key= to allow auto-play writes
Browse files
app.py
CHANGED
|
@@ -388,10 +388,14 @@ with T1:
|
|
| 388 |
ag_speed = cb5.slider("Speed", 1, 8, 3, format="%dx",
|
| 389 |
label_visibility="collapsed", key="ag_speed")
|
| 390 |
|
| 391 |
-
# step slider —
|
| 392 |
-
st.slider("Step", 0, mx,
|
| 393 |
-
|
| 394 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 395 |
|
| 396 |
stp = st.session_state["ag_stp"]
|
| 397 |
path_sf = route[:stp+1]
|
|
@@ -710,9 +714,13 @@ with T3:
|
|
| 710 |
if st.session_state["rp"] >= max_rp: st.session_state["rp"]=0
|
| 711 |
st.session_state["rp_pl"] = not st.session_state["rp_pl"]; st.rerun()
|
| 712 |
|
| 713 |
-
# slider —
|
| 714 |
-
st.slider("Nodes explored", 0, max_rp,
|
| 715 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 716 |
|
| 717 |
rp = st.session_state["rp"]
|
| 718 |
done = (rp == max_rp)
|
|
|
|
| 388 |
ag_speed = cb5.slider("Speed", 1, 8, 3, format="%dx",
|
| 389 |
label_visibility="collapsed", key="ag_speed")
|
| 390 |
|
| 391 |
+
# step slider — use value= so auto-play can write to ag_stp freely
|
| 392 |
+
new_stp = st.slider("Step", 0, mx,
|
| 393 |
+
value=st.session_state["ag_stp"],
|
| 394 |
+
format="Stop %d",
|
| 395 |
+
help="Drag to jump to any stop in the route")
|
| 396 |
+
if new_stp != st.session_state["ag_stp"]:
|
| 397 |
+
st.session_state["ag_stp"] = new_stp
|
| 398 |
+
st.session_state["ag_play"] = False
|
| 399 |
|
| 400 |
stp = st.session_state["ag_stp"]
|
| 401 |
path_sf = route[:stp+1]
|
|
|
|
| 714 |
if st.session_state["rp"] >= max_rp: st.session_state["rp"]=0
|
| 715 |
st.session_state["rp_pl"] = not st.session_state["rp_pl"]; st.rerun()
|
| 716 |
|
| 717 |
+
# slider — use value= so auto-play can write to rp freely
|
| 718 |
+
new_rp = st.slider("Nodes explored", 0, max_rp,
|
| 719 |
+
value=st.session_state["rp"],
|
| 720 |
+
help="Drag to replay how the algorithm searches node by node")
|
| 721 |
+
if new_rp != st.session_state["rp"]:
|
| 722 |
+
st.session_state["rp"] = new_rp
|
| 723 |
+
st.session_state["rp_pl"] = False
|
| 724 |
|
| 725 |
rp = st.session_state["rp"]
|
| 726 |
done = (rp == max_rp)
|