Part of twisted.python.context View Source View In Hierarchy
A ContextTracker
provides a way to pass arbitrary key/value data up and down a call stack
without passing them as parameters to the functions on that call stack.
from twisted.python.context import call, get def handleRequest(request): call({'request-id': request.id}, renderRequest, request.url) def renderRequest(url): renderHeader(url) renderBody(url) def renderHeader(url): return "the header" def renderBody(url): return "the body (request id=%r)" % (get("request-id"),)This should be used sparingly, since the lack of a clear connection between the two halves can result in code which is difficult to understand and maintain.
Instance Variables | contexts | A list of dict s tracking the context state.
Each new ContextTracker.callWithContext
pushes a new dict onto this stack for the duration of the
call, making the data available to the function called and restoring the
previous data once it is complete..
|
Method | __init__ | Undocumented |
Method | callWithContext | Call func(*args, **kw) such that the contents of
newContext will be available for it to retrieve using getContext .
|
Method | getContext | Retrieve the value for a key from the context. |
func(*args, **kw)
such that the contents of
newContext
will be available for it to retrieve using getContext
.
Parameters | newContext | A dict of data to push onto the context for the duration of
the call to func .
|
func | A callable which will be called. | |
*args | Any additional positional arguments to pass to func .
| |
**kw | Any additional keyword arguments to pass to func .
| |
Returns | Whatever is returned by func
| |
Raises | Whatever is raised by func .
|
Parameters | key | The key to look up in the context. |
default | The value to return if key is not found in the context.
| |
Returns | The value most recently remembered in the context for
key .
|