MagicStack / MagicStack/uvloop
`asyncio.get_event_loop` raises error instead of spawning new loop when no loop is running.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Cython
- Sterne
- 11.9k
- Forks
- 616
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
>>> 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 "<python-input-4>", line 1, in <module>
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 which was not there in previous version inheriting the original new loop spawning function.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das Python-Snippet mit installiertem uvloop und untersuche anschließend die get_event_loop-Überschreibung in uvloop/init.py rund um die verlinkte Methode. Vergleiche ihr Verhalten mit dem von ungepatchtem asyncio; das Issue ist abgeschlossen, wenn der Aufruf von asyncio.get_event_loop() ohne laufenden Event-Loop in beiden Fällen das erwartete Verhalten zeigt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Ruhig
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 68/100