class_docstr: Implements the CachedFuncInfo interface for @st.cache_data
class_docstr_tok: ["Implements","the","CachedFuncInfo","interface","for","@","st.cache_data"]
code: def __init__(
      self,
      func: types.FunctionType,
      show_spinner: bool | str,
      persist: CachePersistType,
      max_entries: int | None,
      ttl: float | timedelta | str | None,
      allow_widgets: bool,
      hash_funcs: HashFuncsDict | None = None,
  ):
      super().__init__(
          func,
          show_spinner=show_spinner,
          allow_widgets=allow_widgets,
          hash_funcs=hash_funcs,
      )
      self.persist = persist
      self.max_entries = max_entries
      self.ttl = ttl
  
      self.validate_params()
  
imports: from __future__ import annotations
  import pickle
  import threading
  import types
  from datetime import timedelta
  from typing import Any, Callable, TypeVar, Union, cast, overload
  from typing_extensions import Literal, TypeAlias
  import streamlit
  from streamlit import runtime
  from streamlit.deprecation_util import show_deprecation_warning
  from streamlit.errors import StreamlitAPIException
  from streamlit.logger import get_logger
  from streamlit.runtime.caching.cache_errors import CacheError, CacheKeyNotFoundError
  from streamlit.runtime.caching.cache_type import CacheType
  from streamlit.runtime.caching.cache_utils import Cache, CachedFuncInfo, make_cached_func_wrapper, ttl_to_seconds
  from streamlit.runtime.caching.cached_message_replay import CachedMessageReplayContext, CachedResult, ElementMsgData, MsgData, MultiCacheResults
  from streamlit.runtime.caching.hashing import HashFuncsDict
  from streamlit.runtime.caching.storage import CacheStorage, CacheStorageContext, CacheStorageError, CacheStorageKeyNotFoundError, CacheStorageManager
  from streamlit.runtime.caching.storage.cache_storage_protocol import InvalidCacheStorageContext
  from streamlit.runtime.caching.storage.dummy_cache_storage import MemoryCacheStorageManager
  from streamlit.runtime.metrics_util import gather_metrics
  from streamlit.runtime.scriptrunner.script_run_context import get_script_run_ctx
  from streamlit.runtime.stats import CacheStat, CacheStatsProvider, group_stats
label_desc: Use image node_id 1 to create a new CachedDataFuncInfo object from inherited base classes: CachedFuncInfo with example: obj = CachedDataFuncInfo(func, show_spinner, persist, max_entries, ttl, allow_widgets, hash_funcs)