With func.clear()
for st.cache_data
, is there a way to clear data associated with specific argument(s) only.
Ex:
st.cache_data
def myFunc(n):
return f'Called with {n}'
myFun(10)
myFun(20)
myFun(30)
With myFunc.clear()
all data is lost.
But I just want to clear the data associated with myFunc(30)
and keep the other data.
(Say, I know the Database in the backend got updated for just that argument)
While I can do whatever I want with session_state
, it is per session and hence not that effecient.
Hi @KrishnaKasula
Perhaps you could assign an assigned function to a variable such as:
var30 = myFun(30)
and delete that variable via
del var30
Hi @dataprofessor,
Doesnβt look like working.
Here is the simple executable code
import streamlit as st
@st.cache_data
def myFunc(n):
s = f'Called with {n}'
print(s)
return s
for i in (1, 2, 3, 1, 2, 3):
s = myFunc(i)
st.write(s)
del s
I do not see any function getting called twice.
Output on terminal
Called with 1
Called with 2
Called with 3
Output on browser
Called with 1
Called with 2
Called with 3
Called with 1
Called with 2
Called with 3
Krishna