From 9e9b6bc7dc84267f0f7444a2b251ee381b847673 Mon Sep 17 00:00:00 2001 From: profitroll Date: Sun, 9 Feb 2025 23:45:18 +0100 Subject: [PATCH] Moved create_cache_client() to cache_manager --- classes/holo_bot.py | 2 +- modules/cache_manager.py | 29 +++++++++++++++++++++++++++++ modules/cache_utils.py | 30 +----------------------------- 3 files changed, 31 insertions(+), 30 deletions(-) create mode 100644 modules/cache_manager.py diff --git a/classes/holo_bot.py b/classes/holo_bot.py index 26310dc..881e92d 100644 --- a/classes/holo_bot.py +++ b/classes/holo_bot.py @@ -5,7 +5,7 @@ from libbot.pycord.classes import PycordBot from classes.cache.holo_cache_memcached import HoloCacheMemcached from classes.cache.holo_cache_redis import HoloCacheRedis -from modules.cache_utils import create_cache_client +from modules.cache_manager import create_cache_client logger: Logger = logging.getLogger(__name__) diff --git a/modules/cache_manager.py b/modules/cache_manager.py new file mode 100644 index 0000000..02d01fb --- /dev/null +++ b/modules/cache_manager.py @@ -0,0 +1,29 @@ +from typing import Dict, Any, Literal + +from classes.cache.holo_cache_memcached import HoloCacheMemcached +from classes.cache.holo_cache_redis import HoloCacheRedis + + +def create_cache_client( + config: Dict[str, Any], + engine: Literal["memcached", "redis"] | None = None, +) -> HoloCacheMemcached | HoloCacheRedis: + if engine not in ["memcached", "redis"] or engine is None: + raise KeyError( + f"Incorrect cache engine provided. Expected 'memcached' or 'redis', got '{engine}'" + ) + + if "cache" not in config or engine not in config["cache"]: + raise KeyError( + f"Cache configuration is invalid. Please check if all keys are set (engine: '{engine}')" + ) + + match engine: + case "memcached": + return HoloCacheMemcached.from_config(config["cache"][engine]) + case "redis": + return HoloCacheRedis.from_config(config["cache"][engine]) + case _: + raise KeyError( + f"Cache implementation for the engine '{engine}' is not present." + ) diff --git a/modules/cache_utils.py b/modules/cache_utils.py index 85aa629..2f95204 100644 --- a/modules/cache_utils.py +++ b/modules/cache_utils.py @@ -1,37 +1,9 @@ from copy import deepcopy -from typing import Dict, Any, Literal +from typing import Any from bson import ObjectId from ujson import dumps, loads -from classes.cache.holo_cache_memcached import HoloCacheMemcached -from classes.cache.holo_cache_redis import HoloCacheRedis - - -def create_cache_client( - config: Dict[str, Any], - engine: Literal["memcached", "redis"] | None = None, -) -> HoloCacheMemcached | HoloCacheRedis: - if engine not in ["memcached", "redis"] or engine is None: - raise KeyError( - f"Incorrect cache engine provided. Expected 'memcached' or 'redis', got '{engine}'" - ) - - if "cache" not in config or engine not in config["cache"]: - raise KeyError( - f"Cache configuration is invalid. Please check if all keys are set (engine: '{engine}')" - ) - - match engine: - case "memcached": - return HoloCacheMemcached.from_config(config["cache"][engine]) - case "redis": - return HoloCacheRedis.from_config(config["cache"][engine]) - case _: - raise KeyError( - f"Cache implementation for the engine '{engine}' is not present." - ) - def json_to_string(json_object: Any) -> str: json_object_copy: Any = deepcopy(json_object)