Source code for stackholm.storages.contextvar.contextvar_storage

from contextvars import ContextVar
from typing import Any

from stackholm.state import State
from stackholm.storages.optimized_list.optimized_list_storage import (
    OptimizedListStorage,
)


__all__ = (
    'ContextVarStorage',
)


[docs]class ContextVarStorage(OptimizedListStorage): _context_var: ContextVar[State]
[docs] def __init__( self, context_var: ContextVar[State], *args: Any, **kwargs: Any, ) -> None: self._context_var = context_var super(ContextVarStorage, self).__init__(*args, **kwargs)
[docs] def get_state(self) -> State: return self._context_var.get()
[docs] def set_state( self, state: State, ) -> None: self._context_var.set(state)