OverflowError: Python integer 256 out of bounds for uint8
Nessuno ha ancora preso questa issue.
- Lingua principale
- Jupyter Notebook
- Stelle
- 853
- Fork
- 322
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
I am breaking the demos in the notebook in individual scripts to get acquainted with the package to learn how it works and adapt it to my needs.
Running demo4 as a separate script with python I get this error traceback:
D:\Users\xxx\Work\__WFDB\wfdb-python>python demo4.py
Traceback (most recent call last):
File "D:\Users\xxx\Work\__WFDB\wfdb-python\demo4.py", line 12, in <module>
annotation = wfdb.rdann('sample-data/100', 'atr', sampfrom=100000, sampto=110000)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\xxx\Work\__WFDB\wfdb-python\wfdb\io\annotation.py", line 1953, in rdann
(sample, label_store, subtype, chan, num, aux_note) = proc_ann_bytes(
^^^^^^^^^^^^^^^
File "D:\Users\xxx\Work\__WFDB\wfdb-python\wfdb\io\annotation.py", line 2154, in proc_ann_bytes
sample_diff, current_label_store, bpi = proc_core_fields(filebytes, bpi)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\xxx\Work\__WFDB\wfdb-python\wfdb\io\annotation.py", line 2240, in proc_core_fields
sample_diff += int(filebytes[bpi, 0] + 256 * (filebytes[bpi, 1] & 3))
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
OverflowError: Python integer 256 out of bounds for uint8
The same happens with Linux (Ubuntu 22.04).
After changing the highlighted line it works like the notebook.
$ git diff
diff --git a/wfdb/io/annotation.py b/wfdb/io/annotation.py
index b398fa0..4d451b1 100644
--- a/wfdb/io/annotation.py
+++ b/wfdb/io/annotation.py
@@ -2237,7 +2237,7 @@ def proc_core_fields(filebytes, bpi):
# Not a skip - it is the actual sample number + annotation type store value
label_store = filebytes[bpi, 1] >> 2
- sample_diff += int(filebytes[bpi, 0] + 256 * (filebytes[bpi, 1] & 3))
+ sample_diff += int(filebytes[bpi, 0]) + 256 * int(filebytes[bpi, 1] & 3)
bpi = bpi + 1
return sample_diff, label_store, bpi
EDIT:
Python versions
Windows: 3.12.4
Linux: 3.10.12
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia in wfdb/io/annotation.py, all’interno di proc_core_fields, usando il traceback e l’invocazione di demo4.py riportata per riprodurre l’OverflowError. Confronta il risultato di rdann dello script separato con il comportamento del notebook; il lavoro è completato quando demo4.py viene eseguito correttamente sui dati di esempio senza l’overflow di uint8.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- data
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 48/100