ipython / ipython/ipykernel

Using the `--IPKernelApp.trio_loop=True` doesn't appear to set the main loop to use `trio`

未關閉
#1,243 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
734
分支
412
平均合併
1 天 5 小時
30 天內合併 PR
8

描述

To reproduce:

```
% ipython --IPKernelApp.trio_loop=True
Python 3.11.6 | packaged by conda-forge | (main, Oct 3 2023, 10:37:07) [Clang 15.0.7 ]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.24.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import trio

In [2]: await trio.sleep(1)
...
RuntimeError: must be called from async context
```

However the following does work, which is not expected:

```
% ipython --IPKernelApp.trio_loop=True
Python 3.11.6 | packaged by conda-forge | (main, Oct 3 2023, 10:37:07) [Clang 15.0.7 ]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.24.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import asyncio

In [2]: await asyncio.sleep(1)

In [3]:
```

I could have missed something obvious though...

貢獻指南

開啟貢獻指南

研究方向

Reproduce the command with --IPKernelApp.trio_loop=True and compare the trio and asyncio await cases. Trace how ipykernel handles the trio_loop setting and identify why trio.sleep is outside an async context; done means trio awaits work under the flag and the observed asyncio behavior matches the intended semantics.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
jupyter, python
領域
backend, devtools
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
42/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。