Function decorator to memoize function executions.

Memoized data is stored in "pickled" form, which means that the return value of a memoized function must be pickleable.

Each caller of a memoized function gets its own copy of the cached data.

You can clear a memoized function's cache with f.clear().

Function signature

st.experimental_memo(func=None, *, persist=None, show_spinner=True, suppress_st_warning=False, max_entries=None, ttl=None)


func (callable)

The function to memoize. Streamlit hashes the function's source code.

persist (str or None)

Optional location to persist cached data to. Currently, the only valid value is "disk", which will persist to the local disk.

show_spinner (boolean)

Enable the spinner. Default is True to show a spinner when there is a cache miss.

suppress_st_warning (boolean)

Suppress warnings about calling Streamlit functions from within the cached function.

max_entries (int or None)

The maximum number of entries to keep in the cache, or None for an unbounded cache. (When a new entry is added to a full cache, the oldest cached entry will be removed.) The default is None.

ttl (float or None)

The maximum number of seconds to keep an entry in the cache, or None if cache entries should not expire. The default is None.

Was this page helpful?

editSuggest edits

Still have questions?

Our forums are full of helpful information and Streamlit experts.