aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/gotrue/_async/storage.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/gotrue/_async/storage.py')
-rw-r--r--.venv/lib/python3.12/site-packages/gotrue/_async/storage.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/gotrue/_async/storage.py b/.venv/lib/python3.12/site-packages/gotrue/_async/storage.py
new file mode 100644
index 00000000..5239dd9d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/gotrue/_async/storage.py
@@ -0,0 +1,31 @@
+from __future__ import annotations
+
+from abc import ABC, abstractmethod
+from typing import Dict, Optional
+
+
+class AsyncSupportedStorage(ABC):
+ @abstractmethod
+ async def get_item(self, key: str) -> Optional[str]: ... # pragma: no cover
+
+ @abstractmethod
+ async def set_item(self, key: str, value: str) -> None: ... # pragma: no cover
+
+ @abstractmethod
+ async def remove_item(self, key: str) -> None: ... # pragma: no cover
+
+
+class AsyncMemoryStorage(AsyncSupportedStorage):
+ def __init__(self):
+ self.storage: Dict[str, str] = {}
+
+ async def get_item(self, key: str) -> Optional[str]:
+ if key in self.storage:
+ return self.storage[key]
+
+ async def set_item(self, key: str, value: str) -> None:
+ self.storage[key] = value
+
+ async def remove_item(self, key: str) -> None:
+ if key in self.storage:
+ del self.storage[key]