I’m trying to clear the cache of my app whenever a new file is uploaded through the file uploader widget, I tried using the on_change attribute which, if I understood correctly, calls my clear_cache function to clear the cache only when the file is changed. However, the function is being called every time I interact with the app. I tested this by making a new function which increases the value of a session_state variable whenever it gets called, and a button with no function, every time I click on the button the variable increases.
if 'acount' not in st.session_state: st.session_state.acount = 0 def plusf(): st.session_state.acount += 1 st.write(st.session_state.acount) # File uploader st.file_uploader('Upload fluid file:', type=('xlsx', 'json'), on_change=plusf()) st.write(st.session_state) st.button("Press me")
Here’s a ss showing the issue, I click on the button only (without uploading a file) and the value of “acount” increases
Streamlit version is 1.13.0
Python version is 3.9.12
I’m using conda and vscode
Google Chrome Version 105.0.5195.127 (Official Build) (64-bit)
Thank you in advance