from __future__ import annotations
from abc import ABC, abstractmethod
from typing import Dict, Optional
class SyncSupportedStorage(ABC):
@abstractmethod
def get_item(self, key: str) -> Optional[str]: ... # pragma: no cover
@abstractmethod
def set_item(self, key: str, value: str) -> None: ... # pragma: no cover
@abstractmethod
def remove_item(self, key: str) -> None: ... # pragma: no cover
class SyncMemoryStorage(SyncSupportedStorage):
def __init__(self):
self.storage: Dict[str, str] = {}
def get_item(self, key: str) -> Optional[str]:
if key in self.storage:
return self.storage[key]
def set_item(self, key: str, value: str) -> None:
self.storage[key] = value
def remove_item(self, key: str) -> None:
if key in self.storage:
del self.storage[key]