PEP 399: exception to remove `io` module Python implementation `_pyio`
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 24/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- python
- Bereich
- operating-systems
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Makefile
- Sterne
- 182
- Forks
- 35
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine 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/steering-council
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
python/steering-council#371 · 2 Kommentare · 1 Reaktion ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
python/steering-council#370 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 25/100
python/steering-council#369 ·
-
PEP
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
python/steering-council#367 ·
-
PEP
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
python/steering-council#348 · 1 Kommentar ·
Alle Issues in python/steering-council
Ähnliche Issues
-
area-System.IO bug untriaged
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
dotnet/runtime#136599 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
OS-Simulator-Organization/os-simulator-project#63 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Windows CLI: get_ps_title() passes bytes to GetConsoleTitleW() instead of characters, overflowing the 260-wchar_t bufferEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
ophub/amlogic-s9xxx-armbian#3752 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag