fleche.storage.memory
Classes
A concrete implementation of Storage that stores values in an in-memory dictionary. |
|
Mixin that recursively destructures collections on save/load. |
|
Bridges |
Module Contents
- class fleche.storage.memory.MemoryBackend[source]
Bases:
fleche.storage.base.StorageBackendA concrete implementation of Storage that stores values in an in-memory dictionary.
- storage: dict[fleche.digest.Digest, Any][source]
- list() Iterable[fleche.digest.Digest][source]
- put(value: Any, key: fleche.digest.Digest) fleche.digest.Digest[source]
- get(key: fleche.digest.Digest) Any[source]
- _contains(key: fleche.digest.Digest) bool[source]
- _evict(key: fleche.digest.Digest) None[source]
- class fleche.storage.memory.ValueMemory[source]
Bases:
fleche.storage.destructuring.DestructuringMixin,fleche.storage.base.ValueMixin,MemoryBackendMixin that recursively destructures collections on save/load.
Place before a
ValueMixinin the MRO to add destructuring behavior. Lists, tuples, and dicts are broken apart so each element is stored independently; on load the original structure is reassembled.Example
>>> from fleche.storage.base import ValueMixin >>> from fleche.storage.memory import MemoryBackend >>> @dataclass(frozen=True) ... class MyValueStorage(DestructuringMixin, ValueMixin, MemoryBackend): ... >>> vm = MyValueStorage(storage={}) >>> key = vm.save([1, [2, 3]]) >>> vm.load(key) == [1, [2, 3]] True
- class fleche.storage.memory.CallMemory[source]
Bases:
fleche.storage.base.CallMixin,MemoryBackendBridges
CallStoragewithStorageBackendprimitives.Implements
save,load, andqueryusingputandget, deriving the storage key from the call’s lookup key.transformis inherited fromCallStorage.Concrete classes inherit from this and a
StorageBackendimplementation to get a fully functional call storage.