File: in_memory_storage.py

package info (click to toggle)
python-omemo 2.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 660 kB
  • sloc: python: 3,523; makefile: 16
file content (31 lines) | stat: -rw-r--r-- 705 bytes parent folder | download | duplicates (2)
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
from typing import Dict

import omemo


__all__ = [
    "InMemoryStorage"
]


class InMemoryStorage(omemo.Storage):
    """
    Volatile storage implementation with the values held in memory.
    """

    def __init__(self) -> None:
        super().__init__(True)

        self.__storage: Dict[str, omemo.JSONType] = {}

    async def _load(self, key: str) -> omemo.Maybe[omemo.JSONType]:
        try:
            return omemo.Just(self.__storage[key])
        except KeyError:
            return omemo.Nothing()

    async def _store(self, key: str, value: omemo.JSONType) -> None:
        self.__storage[key] = value

    async def _delete(self, key: str) -> None:
        self.__storage.pop(key, None)