async function support in url_defaults and url_value_preprocessor
还没有人认领这个 Issue。
评估
调研方向
首先阅读 quart/app.py 第 1450 行附近的代码,并跟踪 url_defaults 和 url_value_preprocessor 回调是如何被调用的。检查协程结果是如何处理的,以及是否涉及相关的 routing 入口点。完成的标准是:异步回调可以 await get_preferred_language 且不会出现 RuntimeWarning,同时同步回调继续正常工作。
由索引模型根据 Issue 内容生成。
描述
currently if you try to use an async function in url_defaults or url_value_preprocessor it raises
.venv/lib/python3.10/site-packages/quart/app.py:1450: RuntimeWarning: coroutine 'pull_lang_code' was never awaited
error.
The following code uses get_preferred_language from Quart-Babel extension but it could also be an async db call in an url_value_preprocessor function.
@app.url_defaults
async def add_language_code(endpoint, values):
if app.url_map.is_endpoint_expecting(endpoint, "lang_code"):
prefered_lang = await get_preferred_language()
values.setdefault("lang_code", prefered_lang)
do you have any workaround/suggestions to this situation?
- 主要语言
- Python
- 星标
- 3.7k
- 派生
- 209
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
pallets/quart 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
-
`abort` typing doesn't accept Response as a valid parameter可能已有人在做 @touilleMan 于 1478 天前认领。 未关闭
难度 1/5 1 小时以内 新手友好度 68/100
-
process_response marks the session accessed, so every response gets Vary: Cookie可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 3/5 1-2 天 新手友好度 78/100
-
Installing asgi_app middleware as documented results in type errors可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 3/5 1-2 天 新手友好度 45/100
-
Allow max content length to be modified on a per-request basis可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 4/5 3-5 天 新手友好度 35/100
相似的 Issue
-
needs-triage
难度 2/5 1-3 小时 新手友好度 78/100
gke-labs/kube-agents#5671 ·
维护者通常 1 天内回复
-
documentation next-release v0.9.6
难度 1/5 1 小时以内 新手友好度 88/100
khuisman/mcp-gee-sweet#1446 ·
维护者通常 1 天内回复
-
model:sonnet runtime:claude security size:S
难度 2/5 1-3 小时 新手友好度 75/100
FootprintAI/Containarium#3671 ·
维护者通常 1 天内回复
-
HolidayBase: reassigning `language` does not re-initialize translations or re-populate holidays可能已有人在做 @shikhabhadoria 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
vacanza/holidays#4116 · 1 条评论 ·
维护者通常 1 天内回复
-
bug CLI exec
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复