Spaces:
Sleeping
Sleeping
File size: 883 Bytes
409c17a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
"""
Domain Layer - Cache Interface
Defines contract for caching implementations.
"""
from abc import ABC, abstractmethod
from typing import Any, Optional
class ICache(ABC):
"""Interface for cache implementations"""
@abstractmethod
async def get(self, key: str) -> Optional[Any]:
"""Get value from cache"""
pass
@abstractmethod
async def set(self, key: str, value: Any, ttl: Optional[int] = None) -> bool:
"""Set value in cache"""
pass
@abstractmethod
async def delete(self, key: str) -> bool:
"""Delete key from cache"""
pass
@abstractmethod
async def exists(self, key: str) -> bool:
"""Check if key exists"""
pass
@abstractmethod
async def clear(self, pattern: str = "*") -> int:
"""Clear cache by pattern"""
pass
|