[C API] Add `PyFrozenWriter` C API to create a `frozenset` object
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
研究方向
Read the C API implementation of PyFrozenSet_New() and the listed callers in Modules/_abc.c, Modules/_ssl.c, Modules/_asynciomodule.c, Modules/_hashopenssl.c, and Modules/marshal.c. Check the linked PR gh-160154 first to see the current implementation direction. Done means the C API can create a frozenset for these use cases without calling PySet_Add() on an immutable object.
由索引模型根據 Issue 內容生成。
描述
In the current C API, PyFrozenSet_New(iterable) allows creating a frozenset object from an iterable object. This API is nice, but it doesn't cover all use cases.
For other use cases, PySet_Add(frozenset, item) can be called to modify an immutable frozenset which is a bit unfortunate, since frozenset objects are supposed to be immutable. Examples of functions creating an immutable frozenset using PySet_Add():
- Modules/_abc.c:
compute_abstract_methods()for abstract - Modules/_ssl.c:
parseKeyUsage()for retval - Modules/_asynciomodule.c:
_asyncio.Future._asyncio_awaited_by - Modules/_hashopenssl.c:
hashlib_md_meth_names()for state.set - Modules/marshal.c:
r_object()
Linked PRs
- gh-160154
- 主要語言
- Python
- 星號
- 77.7k
- 分支
- 38.3k
- 平均合併
- 13 小時 30 分鐘
- 30 天內合併 PR
- 708
環境準備
在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
python/cpython 的其他 Issue
-
tarfile: extractfile(member).read() of a sparse member is slow due to repeated bytes concatenation未關閉performance stdlib
難度 2/5 1-3 小時 新手友好度 75/100
維護者通常 1 天內回覆
-
tests topic-profiling type-bug
難度 2/5 1-3 小時 新手友好度 78/100
python/cpython#160334 · 1 則留言 ·
維護者通常 1 天內回覆
-
`iso2022_jp_3` encodes U+9B1D but decodes the result as U+9B1C可能已有人在做 @kinqsradio 於 1 天前認領。 未關閉extension-modules type-bug
難度 2/5 1-3 小時 新手友好度 84/100
維護者通常 1 天內回覆
-
interpreter-core type-feature
難度 1/5 1 小時以內 新手友好度 78/100
python/cpython#160109 · 1 則留言 ·
維護者通常 1 天內回覆
-
extension-modules type-bug
難度 2/5 1-3 小時 新手友好度 72/100
python/cpython#160001 · 3 則留言 ·
維護者通常 1 天內回覆
相似的 Issue
-
backlog
難度 1/5 1 小時以內 新手友好度 91/100
EchoTools/nevr-runtime#1108 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
btclib-org/btclib-wallet#587 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 72/100
維護者通常 1 天內回覆
-
documentation
難度 2/5 1-3 小時 新手友好度 68/100
Judgment-Pack/judgment-pack-spec#275 ·
維護者通常 1 天內回覆