MagicStack / MagicStack/uvloop
UDPTransport returning when data is empty
Nessuno ha ancora preso questa issue.
- Lingua principale
- Cython
- Stelle
- 11.9k
- Fork
- 616
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
* **uvloop version**:
* **Python version**: <3.13
* **Platform**: MacOS
* **Can you reproduce the bug with `PYTHONASYNCIODEBUG` in env?**:
* **Does uvloop behave differently from vanilla asyncio? How?**: There is a change made in CPython 3.13 to remove this behaviour.
The Datagram transport in both `asyncio.DatagramTransport` and `uvloop.UDPTransport` will return and ignore calls to `sendto` if the data is empty. This prohibits users from sending zero-length datagrams.
The behaviour will be removed in CPython 3.13 (see https://github.com/python/cpython/issues/113812). Note that the public API in `uvloop` references the Python `asyncio` behaviour.
https://github.com/MagicStack/uvloop/blob/6c770dc3fbdd281d15c2ad46588c139696f9269c/uvloop/handles/udp.pyx#L284-L286
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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.
Direzione di ricerca
Inizia dalle righe 284-286 di uvloop/handles/udp.pyx, dove UDPTransport attualmente ritorna in presenza di dati vuoti, e confronta la modifica di CPython 3.13 a cui si fa riferimento. Il lavoro è completato quando sendto non ignora più i datagrammi di lunghezza zero, preservando il comportamento documentato del trasporto asyncio.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- networking
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 42/100