PEP 399: exception to remove `io` module Python implementation `_pyio`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 24/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- operating-systems
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Makefile
- Stelle
- 182
- Fork
- 35
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di python/steering-council
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 32/100
python/steering-council#373 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
python/steering-council#371 · 2 commenti · 1 reazione ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
python/steering-council#370 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 25/100
python/steering-council#369 ·
-
PEP
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
python/steering-council#367 ·
Tutte le issue di python/steering-council
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
grumpycoders/pcsx-redux#2530 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
InukaAsith/TwinDesk#84 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
PowerShell/PowerShell#28283 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
tests topic-profiling type-bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
python/cpython#160881 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100