Source code for redis_func_cache.mixins.scripts
"""Some mixins with lua scripts defined for policies."""
from abc import ABC
__all__ = (
"AbstractScriptsMixin",
"FifoScriptsMixin",
"FifoTScriptsMixin",
"LfuScriptsMixin",
"LruScriptsMixin",
"MruScriptsMixin",
"RrScriptsMixin",
"LruTScriptsMixin",
)
[docs]
class AbstractScriptsMixin(ABC):
"""Abstract scripts mixin.
.. inheritance-diagram:: AbstractScriptsMixin
:parts: 1
Attributes:
__scripts__ (tuple[str, str]): A pair of file name for ‘get’ and ‘put’ Lua scripts to be used by the policy.
"""
__scripts__: tuple[str, str]
[docs]
class FifoScriptsMixin(AbstractScriptsMixin):
"""Scripts mixin for fifo policy.
.. inheritance-diagram:: FifoScriptsMixin
:parts: 1
"""
__scripts__ = "fifo_get.lua", "fifo_put.lua"
[docs]
class FifoTScriptsMixin(AbstractScriptsMixin):
"""Scripts mixin for fifo policy.
.. inheritance-diagram:: FifoTScriptsMixin
:parts: 1
"""
__scripts__ = "fifo_get.lua", "fifo_t_put.lua"
[docs]
class LfuScriptsMixin(AbstractScriptsMixin):
"""Scripts mixin for lfu policy.
.. inheritance-diagram:: LfuScriptsMixin
:parts: 1
"""
__scripts__ = "lfu_get.lua", "lfu_put.lua"
[docs]
class LruScriptsMixin(AbstractScriptsMixin):
"""Scripts mixin for lru policy.
.. inheritance-diagram:: LruScriptsMixin
:parts: 1
"""
__scripts__ = "lru_get.lua", "lru_put.lua"
MruScriptsMixin = LruScriptsMixin
[docs]
class LruTScriptsMixin(AbstractScriptsMixin):
"""Scripts mixin for lru-t policy.
.. inheritance-diagram:: LruTScriptsMixin
:parts: 1
"""
__scripts__ = "lru_t_get.lua", "lru_t_put.lua"
[docs]
class RrScriptsMixin(AbstractScriptsMixin):
"""Scripts mixin for rr policy.
.. inheritance-diagram:: RrScriptsMixin
:parts: 1
"""
__scripts__ = "rr_get.lua", "rr_put.lua"