MagicStack / MagicStack/uvloop
`asyncio.get_event_loop` raises error instead of spawning new loop when no loop is running.
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
```python
>>> import uvloop, asyncio
>>> asyncio.get_event_loop()
<_UnixSelectorEventLoop running=False closed=False debug=False>
>>> uvloop.install()
>>> asyncio.get_event_loop()
Traceback (most recent call last):
File "", line 1, in
asyncio.get_event_loop()
~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/site-packages/uvloop/__init__.py", line 206, in get_event_loop
raise RuntimeError(
...<2 lines>...
)
RuntimeError: There is no current event loop in thread 'MainThread'.
>>>
```
As you can see in the snippet above when run on un-patched asyncio it's returning a new loop. But uvloop raises error because of the [method override](https://github.com/MagicStack/uvloop/blob/74f4c96d3fc5281b1820491d2568de771ea7851b/uvloop/__init__.py#L200) which was not there in previous version inheriting the original new loop spawning function.
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
Riproduci lo snippet Python con uvloop installato, quindi esamina l’override di get_event_loop in uvloop/__init__.py intorno al metodo collegato. Confrontane il comportamento con quello di asyncio non modificato; l’issue è completata quando la chiamata a asyncio.get_event_loop() senza un loop in esecuzione ha il comportamento previsto in entrambi i casi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- backend
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Tranquilla
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 68/100