python / python/cpython

Improve wave module error messages to include the offending value

Aperta
#149,306 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

stdlib type-feature
Lingua principale
Python
Stelle
77.2k
Fork
35.9k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con i percorsi di validazione del modulo wave, incluso setframerate(-1), e con l’analisi dell’header di Wave_read menzionata nell’issue. Riproduci gli errori attuali, quindi verifica che ogni messaggio pertinente includa il valore che ha causato l’errore e che il comportamento esistente di wave rimanga invariato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
audio-video-rtc
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.