Streamlit Pages Skill (AGILAB)
Use this skill when editing:
- •
src/agilab/AGILAB.py - •
src/agilab/pages/*.py - •
src/agilab/apps-pages/*/src/*/*.py
Session State Rules (Avoid Common Crashes)
- •
Never assign
st.session_state["k"] = …after a widget withkey="k"was created.- •Prefer
st.session_state.setdefault("k", default)before the widget. - •Or use widget return values and compute derived state separately.
- •Prefer
- •
If you need to “reset” a widget value:
- •Use a different key (versioned key pattern), or
- •Gate the reset behind a rerun and only mutate state before widget creation.
Recommended Pattern
- •Initialize defaults with
setdefaultat the top of the page. - •Render widgets.
- •Read values from widgets, compute derived state, store under different keys.
Rerun API
- •Do not use
st.experimental_rerun(); usest.rerun().
Key Hygiene
- •Every widget must have a stable, unique key.
- •Prefer namespaced keys:
f\"{page_id}:df_files\", not"df_files".