class_docstr: Disk key value cache
  
  Args:
      `path` (str): the path on disk where the cache will be stored
      `max_cache_size` (int, optional): an integer representing the maximum size of
          the cache. The system will make its best effort to enforce this limit, but it may slightly exceed it. The default value is 2**30.
      `shards` (int, optional): an integer representing the number of shards to use.
          This can improve concurrent writes. The default value is 3. size limit of
          individual cache shards is the `max_cache_size` divided by the number of
          shards.
code: def __init__(
      self, path: str, max_cache_size: int = 2**30, shards: int = 3
  ):
      # For details, see: http://www.grantjenks.com/docs/diskcache/tutorial.html#settings
      default_settings = {
          "size_limit": max_cache_size,
          "eviction_policy": "least-recently-stored",
          "disk_pickle_protocol": pickle.HIGHEST_PROTOCOL,
      }
      self._path = path
      self._cache = FanoutCache(path, shards=shards, **default_settings)
  
imports: import pickle
  from typing import Any
  from diskcache import FanoutCache
label_desc: Use image node_id 1 to create a new DiskKVCache object  with example: obj = DiskKVCache(path, max_cache_size, shards)