# `cache` — Utilities for implementing caches

New in version 0.9: This module was added in version 0.9.

class aioxmpp.cache.LRUDict(**kwargs)

  Size-restricted dictionary with Least Recently Used expiry policy.

  New in version 0.9.

  The `LRUDict` supports normal dictionary-style access and implements `collections.abc.MutableMapping`.

  When the `maxsize` is exceeded, as many entries as needed to get below the `maxsize` are removed from the dict. Least recently used entries are purged first. Setting an entry does not count as use!

  maxsize

    Maximum size of the cache. Changing this property purges overhanging entries immediately.

    If set to `None`, no limit on the number of entries is imposed. Do not use a limit of `None` for data where the key is under control of a remote entity.

    Use cases for `None` are those where you only need the explicit expiry feature, but not the LRU feature.