anyway/backend/src/cache.py
Helldragon67 73373e0fc3
Some checks failed
Build and deploy the backend to staging / Build and push image (pull_request) Successful in 2m9s
Run linting on the backend code / Build (pull_request) Successful in 34s
Run testing on the backend code / Build (pull_request) Failing after 1m56s
Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 17s
linting
2025-01-10 15:59:44 +01:00

76 lines
2.3 KiB
Python

"""Module used for handling cache"""
from pymemcache import serde
from pymemcache.client.base import Client
from .constants import MEMCACHED_HOST_PATH
class DummyClient:
"""
A dummy in-memory client that mimics the behavior of a memcached client.
This class is designed to simulate the behavior of the `pymemcache.Client`
for testing or development purposes. It stores data in a Python dictionary
and provides methods to set, get, and update key-value pairs.
Attributes:
_data (dict): A dictionary that holds the key-value pairs.
Methods:
set(key, value, **kwargs):
Stores the given key-value pair in the internal dictionary.
set_many(data, **kwargs):
Updates the internal dictionary with multiple key-value pairs.
get(key, **kwargs):
Retrieves the value associated with the given key from the internal
dictionary.
"""
_data = {}
def set(self, key, value, **kwargs): # pylint: disable=unused-argument
"""
Store a key-value pair in the internal dictionary.
Args:
key: The key for the item to be stored.
value: The value to be stored under the given key.
**kwargs: Additional keyword arguments (unused).
"""
self._data[key] = value
def set_many(self, data, **kwargs): # pylint: disable=unused-argument
"""
Update the internal dictionary with multiple key-value pairs.
Args:
data: A dictionary containing key-value pairs to be added.
**kwargs: Additional keyword arguments (unused).
"""
self._data.update(data)
def get(self, key, **kwargs): # pylint: disable=unused-argument
"""
Retrieve the value associated with the given key.
Args:
key: The key for the item to be retrieved.
**kwargs: Additional keyword arguments (unused).
Returns:
The value associated with the given key if it exists.
"""
return self._data[key]
if MEMCACHED_HOST_PATH is None:
client = DummyClient()
else:
client = Client(
MEMCACHED_HOST_PATH,
timeout=1,
allow_unicode_keys=True,
encoding='utf-8',
serde=serde.pickle_serde
)