django-constance/constance/backends/memory.py
2024-07-05 19:38:26 +05:00

37 lines
954 B
Python

from threading import Lock
from constance import config
from constance import signals
from . import Backend
class MemoryBackend(Backend):
"""Simple in-memory backend that should be mostly used for testing purposes."""
_storage = {}
_lock = Lock()
def __init__(self):
super().__init__()
def get(self, key):
with self._lock:
return self._storage.get(key)
def mget(self, keys):
if not keys:
return None
result = []
with self._lock:
for key in keys:
value = self._storage.get(key)
if value is not None:
result.append((key, value))
return result
def set(self, key, value):
with self._lock:
old_value = self._storage.get(key)
self._storage[key] = value
signals.config_updated.send(sender=config, key=key, old_value=old_value, new_value=value)