PEP 399: exception to remove `io` module Python implementation `_pyio`
還沒有人認領這個 Issue。
評估
- 難度
- 5/5
- 預估耗時
- 一週以上
- 新手友好度
- 24/100
- Issue 類型
- 功能
- 描述清晰度
- 描述清楚
- 活躍度
- 活躍
- 技術堆疊
- python
研究方向
Start by reading the PEP 399 exception request and the linked _pyio and io implementation references. Then review the cited I/O testing infrastructure and the pull requests that show divergence between _pyio and _io. Done means the Steering Council has decided whether to grant the requested exception; this is a policy decision rather than a bounded code change.
由索引模型根據 Issue 內容生成。
描述
CPython currently contains two I/O stacks: _io written in C and _pyio written in Python. I would like a PEP 399 exception to remove _pyio.
- There is no flag to get the
_pyioimplementation as the I/O stack used outside of tests / private import. - The
_pyioimplementation depends on_io. To use it without supporting C the extensions requires patching, (_pyioimportsio,ioimports_iounconditionaly). _pyiouses distinct algorithms from_io. It has significantly diverged over time and getting to matching features takes work (ex. Fix_pyio.BytesIOGC, Match exception in_pyio.FileIO.readall, test_pyio.BytesIO, Match exceptions in open(), make the same copies in .readall(), ...)
Both are currently run in CI by some I/O specific testing infrastructure. _pyio takes significantly longer to execute the same tests, especially on older/smaller machines (ex. Raspberry Pi). I've worked to optimize it but getting faster takes significant core work.
The features needed for fast Python native I/O stacks are well represented by asyncio. In improving _pyio performance asyncio asyncio_tcp got over 10% faster. I think asyncio is representative of in-python I/O performance and has actual users.
I did an audit of open source projects and while some used to use _pyio none use it anymore. PyPy uses the native _io stack.
- 主要語言
- Makefile
- 星號
- 182
- 分支
- 35
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
python/steering-council 的其他 Issue
-
難度 5/5 一週以上 新手友好度 25/100
python/steering-council#371 · 2 則留言 · 1 個 reaction ·
-
難度 2/5 1-3 小時 新手友好度 35/100
python/steering-council#370 ·
-
難度 1/5 1 小時以內 新手友好度 25/100
python/steering-council#369 ·
-
PEP
難度 4/5 3-5 天 新手友好度 35/100
python/steering-council#367 ·
-
PEP
難度 5/5 一週以上 新手友好度 25/100
python/steering-council#348 · 1 則留言 ·
查看 python/steering-council 的全部 Issue
相似的 Issue
-
area-System.IO bug untriaged
難度 2/5 1-3 小時 新手友好度 78/100
dotnet/runtime#136599 · 1 則留言 ·
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 86/100
OS-Simulator-Organization/os-simulator-project#63 ·
維護者通常 1 天內回覆
-
Windows CLI: get_ps_title() passes bytes to GetConsoleTitleW() instead of characters, overflowing the 260-wchar_t buffer可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 79/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
ophub/amlogic-s9xxx-armbian#3752 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
維護者通常 1 天內回覆