micropython / micropython/micropython-lib

usayncio: TypeError: exceptions must derive from BaseException

Offen
#268 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
2.9k
Forks
1.1k
Ø Merge
7 T. 6 Std.
Gemergte PRs (30 T.)
3

Beschreibung

I have written some code that uses the asyncio module. The entrypoint point to my code looks like this:

try:
    control.main()
except KeyboardInterrupt:
    pass
except Exception as exc:
    sys.print_exception(exc)
    print('* resetting in 10 seconds')
    time.sleep(10)
    machine.reset()

And control.main looks like:

def main():
    [...]

    try:
        loop.run_forever()
        loop.close()
    finally:
        for task in tasklist:
            task.close()

I just upgraded to the version in micropython-lib as of 9e21d6e, and now when I interrupt my code with ^C I see the following error:

Traceback (most recent call last):
  File "snakecharmer/main.py", line 10, in <module>
  File "snakecharmer/control.py", line 52, in main
  File "uasyncio/__init__.py", line 246, in start_server
TypeError: exceptions must derive from BaseException

That seems to correspond to the following line in uasyncio/__init__.py:

yield IORead(s)

What's going on here?

Beitragsleitfaden

Beitragsleitfaden öffnen

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

Beginne mit uasyncio/init.py in der gemeldeten Zeile 246 und verfolge dann, wie control.py:main und snakecharmer/main.py mit Ctrl-C umgehen. Vergleiche das Verhalten vor und nach der micropython-lib-Revision 9e21d6e. Als erledigt gilt die Aufgabe, wenn erklärt ist, warum der Interrupt diesen Fehler erreicht, und die betroffene Änderung oder Korrektur identifiziert wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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