So I have such sample code. As you can see locale setted twice. However I keep getting error:
AttributeError: st.session_state has no attribute "locale". Did you forget to initialize it? More info: https://docs.streamlit.io/library/advanced-features/session-state#initialization
What is wrong here?
import streamlit as st
from dataclasses import dataclass
@dataclass
class Locale:
ai_role_prefix: str
# --- LOCALE SETTINGS ---
en = Locale(
ai_role_prefix="base",
)
if 'locale' not in st.session_state:
st.session_state.locale = en
if __name__ == "__main__":
st.session_state.locale = en
print(st.session_state.locale.ai_role_prefix)
Full error stack:
C:\Users\dex\mambaforge\python.exe C:/Users/dex/Desktop/gpt4free/AudioChatGPT/src/chat_ui/temp.py
2023-05-12 22:43:37.715 WARNING streamlit.runtime.state.session_state_proxy: Session state does not function when running a script without `streamlit run`
Traceback (most recent call last):
File "C:\Users\dex\mambaforge\lib\site-packages\streamlit\runtime\state\session_state.py", line 370, in __getitem__
return self._getitem(widget_id, key)
File "C:\Users\dex\mambaforge\lib\site-packages\streamlit\runtime\state\session_state.py", line 415, in _getitem
raise KeyError
KeyError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\dex\mambaforge\lib\site-packages\streamlit\runtime\state\session_state_proxy.py", line 119, in __getattr__
return self[key]
File "C:\Users\dex\mambaforge\lib\site-packages\streamlit\runtime\state\session_state_proxy.py", line 90, in __getitem__
return get_session_state()[key]
File "C:\Users\dex\mambaforge\lib\site-packages\streamlit\runtime\state\safe_session_state.py", line 113, in __getitem__
return self._state[key]
File "C:\Users\dex\mambaforge\lib\site-packages\streamlit\runtime\state\session_state.py", line 372, in __getitem__
raise KeyError(_missing_key_error_message(key))
KeyError: 'st.session_state has no key "locale". Did you forget to initialize it? More info: https://docs.streamlit.io/library/advanced-features/session-state#initialization'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\dex\Desktop\gpt4free\AudioChatGPT\src\chat_ui\temp.py", line 22, in <module>
print(st.session_state.locale.ai_role_prefix)
File "C:\Users\dex\mambaforge\lib\site-packages\streamlit\runtime\state\session_state_proxy.py", line 121, in __getattr__
raise AttributeError(_missing_attr_error_message(key))
AttributeError: st.session_state has no attribute "locale". Did you forget to initialize it? More info: https://docs.streamlit.io/library/advanced-features/session-state#initialization
Process finished with exit code 1
Note the first part of the warning:
WARNING streamlit.runtime.state.session_state_proxy:
Session state does not function when running a script without `streamlit run`
This indicates the script was executed as a normal Python script rather than through the streamlit package.
To run your script as a streamlit app, type in your terminal streamlit run your_app.py
or streamlit run path/your_app.py
if you are not located in the same directory as your file.
If for any reason there is still a problem, you can use the more verbose python -m streamlit run your_app.py