A proxy to the object bound to a context-local object. All operations on the proxy are forwarded to the bound object. If no object is bound, a ``RuntimeError`` is raised. :param local: The context-local object that provides the proxied object. :param name: Proxy this attribute from the proxied object. :param unbound_message: The error message to show if the context-local object is unbound. Proxy a :class:`~contextvars.ContextVar` to make it easier to access. Pass a name to proxy that attribute. .. code-block:: python _request_var = ContextVar("request") request = LocalProxy(_request_var) session = LocalProxy(_request_var, "session") Proxy an attribute on a :class:`Local` namespace by calling the local with the attribute name: .. code-block:: python data = Local() user = data("user") Proxy the top item on a :class:`LocalStack` by calling the local. Pass a name to proxy that attribute. .. code-block:: app_stack = LocalStack() current_app = app_stack() g = app_stack("g") Pass a function to proxy the return value from that function. This was previously used to access attributes of local objects before that was supported directly. .. code-block:: python session = LocalProxy(lambda: request.session) ``__repr__`` and ``__class__`` are proxied, so ``repr(x)`` and ``isinstance(x, cls)`` will look like the proxied object. Use ``issubclass(type(x), LocalProxy)`` to check if an object is a proxy. .. code-block:: python repr(user) # <User admin> isinstance(user, User) # True issubclass(type(user), LocalProxy) # True .. versionchanged:: 2.2.2 ``__wrapped__`` is set when wrapping an object, not only when wrapping a function, to prevent doctest from failing. .. versionchanged:: 2.2 Can proxy a ``ContextVar`` or ``LocalStack`` directly. .. versionchanged:: 2.2 The ``name`` parameter can be used with any proxied object, not only ``Local``. .. versionchanged:: 2.2 Added the ``unbound_message`` parameter. .. versionchanged:: 2.0 Updated proxied attributes and methods to reflect the current data model. .. versionchanged:: 0.6.1 The class can be instantiated with a callable.
Method | __init__ |
Undocumented |
Class Variable | __abs__ |
Undocumented |
Class Variable | __add__ |
Undocumented |
Class Variable | __aenter__ |
Undocumented |
Class Variable | __aexit__ |
Undocumented |
Class Variable | __aiter__ |
Undocumented |
Class Variable | __and__ |
Undocumented |
Class Variable | __anext__ |
Undocumented |
Class Variable | __await__ |
Undocumented |
Class Variable | __bool__ |
Undocumented |
Class Variable | __bytes__ |
Undocumented |
Class Variable | __call__ |
Undocumented |
Class Variable | __ceil__ |
Undocumented |
Class Variable | __class__ |
Undocumented |
Class Variable | __complex__ |
Undocumented |
Class Variable | __contains__ |
Undocumented |
Class Variable | __copy__ |
Undocumented |
Class Variable | __deepcopy__ |
Undocumented |
Class Variable | __delattr__ |
Undocumented |
Class Variable | __delitem__ |
Undocumented |
Class Variable | __dir__ |
Undocumented |
Class Variable | __divmod__ |
Undocumented |
Class Variable | __doc__ |
Undocumented |
Class Variable | __enter__ |
Undocumented |
Class Variable | __eq__ |
Undocumented |
Class Variable | __exit__ |
Undocumented |
Class Variable | __float__ |
Undocumented |
Class Variable | __floor__ |
Undocumented |
Class Variable | __floordiv__ |
Undocumented |
Class Variable | __format__ |
Undocumented |
Class Variable | __ge__ |
Undocumented |
Class Variable | __getattr__ |
Undocumented |
Class Variable | __getitem__ |
Undocumented |
Class Variable | __gt__ |
Undocumented |
Class Variable | __hash__ |
Undocumented |
Class Variable | __iadd__ |
Undocumented |
Class Variable | __iand__ |
Undocumented |
Class Variable | __ifloordiv__ |
Undocumented |
Class Variable | __ilshift__ |
Undocumented |
Class Variable | __imatmul__ |
Undocumented |
Class Variable | __imod__ |
Undocumented |
Class Variable | __imul__ |
Undocumented |
Class Variable | __index__ |
Undocumented |
Class Variable | __instancecheck__ |
Undocumented |
Class Variable | __int__ |
Undocumented |
Class Variable | __invert__ |
Undocumented |
Class Variable | __ior__ |
Undocumented |
Class Variable | __ipow__ |
Undocumented |
Class Variable | __irshift__ |
Undocumented |
Class Variable | __isub__ |
Undocumented |
Class Variable | __iter__ |
Undocumented |
Class Variable | __itruediv__ |
Undocumented |
Class Variable | __ixor__ |
Undocumented |
Class Variable | __le__ |
Undocumented |
Class Variable | __len__ |
Undocumented |
Class Variable | __length |
Undocumented |
Class Variable | __lshift__ |
Undocumented |
Class Variable | __lt__ |
Undocumented |
Class Variable | __matmul__ |
Undocumented |
Class Variable | __mod__ |
Undocumented |
Class Variable | __mul__ |
Undocumented |
Class Variable | __ne__ |
Undocumented |
Class Variable | __neg__ |
Undocumented |
Class Variable | __next__ |
Undocumented |
Class Variable | __or__ |
Undocumented |
Class Variable | __pos__ |
Undocumented |
Class Variable | __pow__ |
Undocumented |
Class Variable | __radd__ |
Undocumented |
Class Variable | __rand__ |
Undocumented |
Class Variable | __rdivmod__ |
Undocumented |
Class Variable | __repr__ |
Undocumented |
Class Variable | __reversed__ |
Undocumented |
Class Variable | __rfloordiv__ |
Undocumented |
Class Variable | __rlshift__ |
Undocumented |
Class Variable | __rmatmul__ |
Undocumented |
Class Variable | __rmod__ |
Undocumented |
Class Variable | __rmul__ |
Undocumented |
Class Variable | __ror__ |
Undocumented |
Class Variable | __round__ |
Undocumented |
Class Variable | __rpow__ |
Undocumented |
Class Variable | __rrshift__ |
Undocumented |
Class Variable | __rshift__ |
Undocumented |
Class Variable | __rsub__ |
Undocumented |
Class Variable | __rtruediv__ |
Undocumented |
Class Variable | __rxor__ |
Undocumented |
Class Variable | __setattr__ |
Undocumented |
Class Variable | __setitem__ |
Undocumented |
Class Variable | __slots__ |
Undocumented |
Class Variable | __str__ |
Undocumented |
Class Variable | __sub__ |
Undocumented |
Class Variable | __subclasscheck__ |
Undocumented |
Class Variable | __truediv__ |
Undocumented |
Class Variable | __trunc__ |
Undocumented |
Class Variable | __wrapped__ |
Undocumented |
Class Variable | __xor__ |
Undocumented |
Class Variable | _get |
Return the current object this proxy is bound to. If the proxy is unbound, this raises a ``RuntimeError``. |
t.Union[ ContextVar[ T], Local, LocalStack[ T], t.Callable[ [], T]]
, name: t.Optional[ str]
= None, *, unbound_message: t.Optional[ str]
= None):
(source)
¶
Undocumented
Return the current object this proxy is bound to. If the proxy is unbound, this raises a ``RuntimeError``. This should be used if you need to pass the object to something that doesn't understand the proxy. It can also be useful for performance if you are accessing the object multiple times in a function, rather than going through the proxy multiple times.