Source code for libbot.cache.classes.cache

from abc import ABC, abstractmethod
from typing import Any, Dict, Optional

import pymemcache
import redis


[docs] class Cache(ABC): client: pymemcache.Client | redis.Redis
[docs] @classmethod @abstractmethod def from_config(cls, engine_config: Dict[str, Any]) -> Any: pass
[docs] @abstractmethod def get_json(self, key: str) -> Any | None: # TODO This method must also carry out ObjectId conversion! pass
[docs] @abstractmethod def get_string(self, key: str) -> str | None: pass
[docs] @abstractmethod def get_object(self, key: str) -> Any | None: pass
[docs] @abstractmethod def set_json(self, key: str, value: Any, ttl_seconds: Optional[int] = None) -> None: # TODO This method must also carry out ObjectId conversion! pass
[docs] @abstractmethod def set_string(self, key: str, value: str, ttl_seconds: Optional[int] = None) -> None: pass
[docs] @abstractmethod def set_object(self, key: str, value: Any, ttl_seconds: Optional[int] = None) -> None: pass
[docs] @abstractmethod def delete(self, key: str) -> None: pass