mode.utils.locals
¶
Implements thread-local stack using ContextVar
(PEP 567).
This is a reimplementation of the local stack as used by Flask, Werkzeug, Celery, and other libraries to keep a thread-local stack of objects.
Supports typing:
request_stack: LocalStack[Request] = LocalStack()
- class mode.utils.locals.LocalStack¶
LocalStack.
Manage state per coroutine (also thread safe).
Most famously used probably in Flask to keep track of the current request object.
- pop() Optional[T] ¶
Remove the topmost item from the stack.
Note
Will return the old value or None if the stack was already empty.
- push(obj: T) Generator[None, None, None] ¶
Push a new item to the stack.
- push_without_automatic_cleanup(obj: T) None ¶
- property stack: Sequence[T]¶
- property top: Optional[T]¶
Return the topmost item on the stack.
Does not remove it from the stack.
Note
If the stack is empty,
None
is returned.