[C API] Add `PyFrozenWriter` C API to create a `frozenset` object
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- Python
- Sterne
- 77.7k
- Forks
- 38.3k
- Ø Merge
- 13 Std. 43 Min.
- Gemergte PRs (30 T.)
- 704
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/cpython
-
topic-socket type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
python/cpython#160561 · 7 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
tests topic-profiling type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
python/cpython#160334 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
`iso2022_jp_3` encodes U+9B1D but decodes the result as U+9B1CEvtl. vergeben @kinqsradio hat das vor 1 Tag übernommen. Offenextension-modules type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
-
interpreter-core type-feature
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
python/cpython#160109 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
extension-modules type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
python/cpython#160001 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
follow-up
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
modelscope/modelscope#1833 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ocr_data_to_elements() raises AttributeError when a layout element is a ListEvtl. vergeben @Eapp1e hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
Unstructured-IO/unstructured#4616 ·
Maintainer antworten meist innerhalb von 1 Tag