Agilab Streamlit Pages

Streamlit page authoring patterns for AGILAB (session_state safety, keys, rerun, UX).

majiayu000 3206e9a 2 files · 1.6 KB Updated 567 repo stars

File contents

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 with key="k" was created.

    • Prefer st.session_state.setdefault("k", default) before the widget.
    • Or use widget return values and compute derived state separately.
  • 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

  1. Initialize defaults with setdefault at the top of the page.
  2. Render widgets.
  3. Read values from widgets, compute derived state, store under different keys.

Rerun API

  • Do not use st.experimental_rerun(); use st.rerun().

Key Hygiene

  • Every widget must have a stable, unique key.
  • Prefer namespaced keys: f\"{page_id}:df_files\", not "df_files".

majiayu000/claude-skill-registry-data/tree/main/development/agilab-streamlit-pages commit 3206e9af11

Frequently asked questions

npx skillmds add majiayu000/agilab-streamlit-pages