   it.
How's it work?
Let's take a few minutes to discuss how @st.cache actually works.
When you mark a function with Streamlit’s cache annotation, it tells Streamlit
that whenever the function is called that it should check three things:
The actual bytecode that makes up the body of the function
Code, variables, and files that the function depends on
The input parameters that you called the function with
If this is the first time Streamlit has seen these items, with these exact
values, and in this exact combination, it runs the function and stores the
result in a local cache. The next time the function is called, if the three
values haven't changed, then Streamlit knows it can skip executing the function
altogether. Instead, it reads the output from the local cache and passes it on
to the caller -- like magic.
