python / python/cpython

Improve wave module error messages to include the offending value

Offen
#149,306 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

stdlib type-feature
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Summary

The wave module currently raises errors without the offending value:

wave.Error: bad # of channels
wave.Error: bad sample width
wave.Error: bad frame rate

When values come from variables, configuration, or parsed data, the
traceback shows the call site but not the actual offending value. For
Wave_read, the values are parsed from the WAV file header and never
appear in the traceback at all.

Reproduction

import wave, io
wave.open(io.BytesIO(), 'wb').setframerate(-1)
# wave.Error: bad frame rate

After this change:

wave.Error: bad frame rate: -1

I have a patch ready and will open a PR shortly.

Linked PRs
  • gh-149307

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 den Validierungspfaden des wave-Moduls, einschließlich setframerate(-1), und der in der Issue erwähnten Header-Analyse von Wave_read. Reproduziere die aktuellen Fehler und überprüfe anschließend, dass jede relevante Meldung den fehlerhaften Wert enthält und das bestehende Verhalten von wave unverändert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
audio-video-rtc
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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