use additional loki logger
Some checks failed
Run linting on the backend code / Build (pull_request) Successful in 28s
Run testing on the backend code / Build (pull_request) Failing after 1m27s
Build and deploy the backend to staging / Build and push image (pull_request) Failing after 20s
Build and deploy the backend to staging / Deploy to staging (pull_request) Has been skipped
Some checks failed
Run linting on the backend code / Build (pull_request) Successful in 28s
Run testing on the backend code / Build (pull_request) Failing after 1m27s
Build and deploy the backend to staging / Build and push image (pull_request) Failing after 20s
Build and deploy the backend to staging / Deploy to staging (pull_request) Has been skipped
This commit is contained in:
75
backend/src/cache.py
Normal file
75
backend/src/cache.py
Normal file
@@ -0,0 +1,75 @@
|
||||
"""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
|
||||
)
|
||||
Reference in New Issue
Block a user