MagicStack / MagicStack/uvloop

`asyncio.get_event_loop` raises error instead of spawning new loop when no loop is running.

Offen Anfängerfreundlich
#702 8 Kommentare 9 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.