File size: 652 Bytes
2d5ffb9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# Thank god this existed.
# https://gist.github.com/okld/0aba4869ba6fdc8d49132e6974e2e662
from streamlit import session_state as _state
_PERSIST_STATE_KEY = f"{__name__}_PERSIST"
def persist(key: str) -> str:
"""Mark widget state as persistent."""
if _PERSIST_STATE_KEY not in _state:
_state[_PERSIST_STATE_KEY] = set()
_state[_PERSIST_STATE_KEY].add(key)
return key
def load_widget_state():
"""Load persistent widget state."""
if _PERSIST_STATE_KEY in _state:
_state.update({
key: value
for key, value in _state.items()
if key in _state[_PERSIST_STATE_KEY]
}) |