OverflowError with rdann on LUED annotations w/numpy 2.2
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 853
- Forks
- 322
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Another area of incompatibility with numpy 2.2 I fear...
If I try
wfdb.rdann('physionet.org/files/ludb/1.0.0/1', extension='atr_ii')
or (for version 1.0.1)
wfdb.rdann('physionet.org/files/ludb/1.0.1/1', extension='ii')
I get:
---------------------------------------------------------------------------
OverflowError Traceback (most recent call last)
Cell In[38], line 2
1 # os.path.join(folder_path, str(pid))
----> 2 wfdb.rdann('physionet.org/files/ludb/1.0.0/1', extension='atr_ii')
File ~/miniconda3/envs/pytorch-aline/lib/python3.12/site-packages/wfdb/io/annotation.py:1953, in rdann(record_name, extension, sampfrom, sampto, shift_samps, pn_dir, return_label_elements, summarize_labels)
1950 filebytes = load_byte_pairs(record_name, extension, pn_dir)
1952 # Get WFDB annotation fields from the file bytes
-> 1953 (sample, label_store, subtype, chan, num, aux_note) = proc_ann_bytes(
1954 filebytes, sampto
1955 )
1957 # Get the indices of annotations that hold definition information about
1958 # the entire annotation file, and other empty annotations to be removed.
1959 potential_definition_inds, rm_inds = get_special_inds(
1960 sample, label_store, aux_note
1961 )
File ~/miniconda3/envs/pytorch-aline/lib/python3.12/site-packages/wfdb/io/annotation.py:2154, in proc_ann_bytes(filebytes, sampto)
2146 # Process annotations. Iterate across byte pairs.
2147 # Sequence for one ann is:
2148 # - SKIP pair (if any)
2149 # - samp + sym pair
2150 # - other pairs (if any)
2151 # The last byte pair of the file is 0 indicating eof.
2152 while bpi < filebytes.shape[0] - 1:
2153 # Get the sample and label_store fields of the current annotation
-> 2154 sample_diff, current_label_store, bpi = proc_core_fields(filebytes, bpi)
2155 sample_total = sample_total + sample_diff
2156 sample.append(sample_total)
File ~/miniconda3/envs/pytorch-aline/lib/python3.12/site-packages/wfdb/io/annotation.py:2240, in proc_core_fields(filebytes, bpi)
2238 # Not a skip - it is the actual sample number + annotation type store value
2239 label_store = filebytes[bpi, 1] >> 2
-> 2240 sample_diff += int(filebytes[bpi, 0] + 256 * (filebytes[bpi, 1] & 3))
2241 bpi = bpi + 1
2243 return sample_diff, label_store, bpi
OverflowError: Python integer 256 out of bounds for uint8
Using the command line rdann works fine, and it works after downgrading numpy 1.26. Seems likely related to #493 ?
Pertinent versions:
wfdb-python == 4.1.2
numpy == 2.2.1 (broken)
numpy == 1.26.4 (works)
python == 3.12
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en wfdb/io/annotation.py, en rdann, proc_ann_bytes y proc_core_fields, donde el traceback llega al desbordamiento de uint8. Ejecuta los ejemplos de rdann de LUDB con NumPy 2.2.1 y 1.26.4, y verifica después que la carga de las anotaciones se complete sin OverflowError en la versión más reciente.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- numpy, python
- Área
- data
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100