Request-scoped context via ContextVar.
Provides:
request_var: The currentRequestfor this task/thread.g: A mutable namespace scoped to the current request.
Both are set by the handler pipeline and reset after each request.
They are explicitly opt-in — if no middleware or handler sets them,
accessing them raisesLookupError.
Thread safety:
``ContextVar`` is task-local under asyncio and thread-local under
free-threading (3.14t). No locks needed.
context
| Name | Type | Default | Description |
|---|---|---|---|
type
|
|
— | |
qualified_name
|
|
— | |
element_type
|
|
— | |
description
|
|
— | |
source_file
|
|
— | |
line_number
|
|
— | |
is_autodoc
|
|
— | |
autodoc_element
|
|
— | |
_autodoc_template
|
|
— | |
_autodoc_url_path
|
|
— | |
_autodoc_page_type
|
|
— | |
title
|
|
— | |
doc_content_hash
|
|
— |
Symbols on this page
get_request
function
def get_request() -> Request
Return the current request.
RaisesLookupErrorif called outside a request context.
No parameters.
_RequestGlobals
class
A mutable namespace scoped to the current request.
Inspired by Flask'sg. Stores arbitrary attributes via
a per-request dict held in a ContextVar.
Usage::
from chirp.context import g
# In middleware
g.user = current_user
# In handler
name = g.user.name
View source · /home/runner/work/chirp/chirp/site/../src/chirp/context.py:1