mode.utils.locals — mode-ng 0.4.0 documentation

# `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.