# File Backend

class cachelib.file.FileSystemCache(cache_dir, threshold=500, default_timeout=300, mode=None, hash_method=None)

  Bases: `BaseCache`

  A cache that stores the items on the file system. This cache depends on being the only user of the cache_dir. Make absolutely sure that nobody but this cache stores files there or otherwise the cache will randomly delete files therein.

  Parameters:

    - cache_dir (str) – the directory where cache files are stored.

    - threshold (int) – the maximum number of items the cache stores before it starts deleting some. A threshold value of 0 indicates no threshold.

    - default_timeout (int) – the default timeout that is used if no timeout is specified on `set()`. A timeout of 0 indicates that the cache never expires.

    - mode (int | None) – the file mode wanted for the cache files, default 0600

    - hash_method (Any) – Default hashlib.md5. The hash method used to generate the filename for cached results. Default is lazy loaded and can be overriden by seeting _default_hash_method

  add(key, value, timeout=None)

    Works like `set()` but does not overwrite the values of already existing keys.

    Parameters:

      - key (str) – the key to set

      - value (Any) – the value for the key

      - timeout (int | None) – the cache timeout for the key in seconds (if not specified, it uses the default timeout). A timeout of 0 indicates that the cache never expires.

    Returns:

      Same as `set()`, but also `False` for already existing keys.

    Return type:

      boolean

  clear()

    Clears the cache. Keep in mind that not all caches support completely clearing the cache.

    Returns:

      Whether the cache has been cleared.

    Return type:

      boolean

  delete(key, mgmt_element=False)

    Delete key from the cache.

    Parameters:

      - key (str) – the key to delete.

      - mgmt_element (bool)

    Returns:

      Whether the key existed and has been deleted.

    Return type:

      boolean

  get(key)

    Look up key in the cache and return the value for it.

    Parameters:

      key (str) – the key to be looked up.

    Returns:

      The value if it exists and is readable, else `None`.

    Return type:

      Any

  has(key)

    Checks if a key exists in the cache without returning it. This is a cheap operation that bypasses loading the actual data on the backend.

    Parameters:

      key (str) – the key to check

    Return type:

      bool

  serializer = <cachelib.serializers.FileSystemSerializer object>
  set(key, value, timeout=None, mgmt_element=False)

    Add a new key/value to the cache (overwrites value, if key already exists in the cache).

    Parameters:

      - key (str) – the key to set

      - value (Any) – the value for the key

      - timeout (int | None) – the cache timeout for the key in seconds (if not specified, it uses the default timeout). A timeout of 0 indicates that the cache never expires.

      - mgmt_element (bool)

    Returns:

      `True` if key has been updated, `False` for backend errors. Pickling errors, however, will raise a subclass of `pickle.PickleError`.

    Return type:

      boolean