Singularity666 commited on
Commit
30f4a40
·
1 Parent(s): ad61148

Create session_state.py

Browse files
Files changed (1) hide show
  1. session_state.py +28 -0
session_state.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class _SessionState:
2
+ def __init__(self, **kwargs):
3
+ for key, val in kwargs.items():
4
+ setattr(self, key, val)
5
+
6
+
7
+ def get(**kwargs):
8
+ from streamlit.report_thread import get_report_ctx
9
+
10
+ session_id = get_report_ctx().session_id
11
+ session = _get_session(session_id)
12
+ session_state = session.setdefault("state", _SessionState(**kwargs))
13
+ return session_state
14
+
15
+
16
+ def _get_session(session_id):
17
+ from streamlit.server.server import Server
18
+
19
+ server = Server.get_current()
20
+ if not hasattr(server, "_session_infos"):
21
+ raise RuntimeError("Oh noes. Couldn't get your Streamlit Session object.")
22
+
23
+ session_infos = server._session_infos.values()
24
+ for session_info in session_infos:
25
+ if session_info.session._main_dg.report_ctx.session_id == session_id:
26
+ return session_info.session
27
+
28
+ raise RuntimeError("Oh noes. Couldn't get your Streamlit Session object.")