New event loop integration system
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
研究方向
Issue 中沒有指出任何 repository 檔案或測試。先閱讀提議的進入點 start_guest_run,以及 asyncio、tkinter 和 Qt 的主機迴圈回呼範例;在實作之前,釐清要涵蓋哪個整合 API 以及哪些受支援的事件迴圈。完成的標準是達成共識的設計,並實作可運作的 guest 模式整合。
由索引模型根據 Issue 內容生成。
描述
I would like to change our event-loop integration with Trio's guest mode. Trio's guest mode also works on asyncio thanks to aioguest. For it to work, we just need to have a function that can schedule a callback in the host event-loop in a thread-safe way.
- in asyncio, that would be
loop.call_soon_threadsafe(callback), - in tkinter, that would be
tk.after(0, callback). - Qt supports Trio's guest mode, see here.
- ...
For instance, here is how it looks like when the host event-loop is tkinter's:
from tkinter import Tk
from anyio import sleep
from anyioutils import start_guest_run
def run_sync_soon_threadsafe(fn):
tk.after(0, fn)
def done_callback(outcome):
print("done")
async def foo():
for i in range(10):
await sleep(0.1)
print(i)
tk = Tk()
start_guest_run(foo, run_sync_soon_threadsafe=run_sync_soon_threadsafe, done_callback=done_callback)
tk.mainloop()
Before calling tk.mainloop(), we call start_guest_run() which runs foo as a task in tkinter's event-loop.
Thoughts?
- 主要語言
- Python
- 星號
- 734
- 分支
- 412
- 平均合併
- 1 天 9 小時
- 30 天內合併 PR
- 13
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
ipython/ipykernel 的其他 Issue
-
難度 1/5 1 小時以內 新手友好度 72/100
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 35/100
ipython/ipykernel#1569 · 2 則留言 ·
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 48/100
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 68/100
ipython/ipykernel#1554 · 1 則留言 ·
維護者通常 1 天內回覆
-
Interrupt on swallowed `KeyboardInterrupt` exceptions (`SIGINT`) when pressing twice (within 5 seconds)可能重新可做 @Carreau 於 38 天前認領,目前沒有進行中的 PR。 未關閉
ipython/ipykernel#1550 · 1 則留言 · 1 個 reaction · 已指派 1 人 ·
維護者通常 1 天內回覆
查看 ipython/ipykernel 的全部 Issue
相似的 Issue
-
upstream update
難度 2/5 1-3 小時 新手友好度 75/100
conan-io/conan-center-index#31098 ·
維護者通常 2 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
john-kurkowski/tldextract#382 ·
-
comp/tools duplicate P2 sweeper:risk-compatibility tool/mcp type/bug
難度 1/5 1 小時以內 新手友好度 88/100
NousResearch/hermes-agent#132042 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
deepset-ai/haystack#13092 ·
維護者通常 1 天內回覆
-
難度 1/5 1-3 小時 新手友好度 85/100
feder-cr/invisible_playwright_mcp#1408 ·
維護者通常 1 天內回覆