# Omnistone

* Type: Cache
* Description: In-Memory Cache that lives for the lifetime of the project runtime. Since it lives in Python memory, it's the fastest cache.

This Cache doesn't expire data after it is *expired*. To prevent memory overflow, a cull system is in place. When the amount of data reaches a limit, it calls the `expire()` coroutine on its own. If the amount of data is still higher than `MAX_ENTRIES` \* (1 - 1/`CULL_FRECUENCY`), it deletes items until its less than the limit. Deletion prioritizes least recently used data.

## *class* `Omnistone`

Backend: `pyot.stores.omnistone.Omnistone`

Definitions:

* `__init__`
  * `max_entries: int = 10000`

    > The maximum amount of items to hold before expiring
  * `cull_frecuency: int = 2`

    > The 1/x ratio of max\_entries to be culled. Manual expiring will not trigger culling.
  * `expirations`: `Dict[str, int | float | timedelta] = None`
  * `log_level`: `int = 0`
