Record.wrsamp() fails with a TypeError when the record has no d_signal

Fermée Adaptée aux débutants
#618 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@divya-git03 y travaille déjà.

Depuis le 1/11/2026.

  • #619 par @divya-git03 — fusionnée

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
70/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
numpy, python
Domaine
data

Piste de recherche

Localise la classe Record (probablement dans wfdb/record.py) et inspecte wrsamp() et calc_checksum(). Exécute l'extrait de code fourni pour reproduire le TypeError. Décide entre convertir p_signal en d_signal ou lever une erreur claire ; fait signifie que l'écriture de l'enregistrement réussit ou échoue avec un message utile.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Record.wrsamp() fails with an unhelpful error for a record read with the default physical=True:

import wfdb

record = wfdb.rdrecord("sample-data/100", sampto=1000)
record.wrsamp(write_dir="out")
# TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'

The record only has p_signal, so d_signal is None. Record.wrsamp() first updates the checksums with calc_checksum(), which computes np.sum(self.d_signal, 0) % 65536 and fails on None. Reading with physical=False, or calling record.d_signal = record.adc() first, works.

#543 ran into the same error. Two possible fixes:

  1. Convert p_signal to d_signal with the record's adc_gain and baseline when d_signal is missing, so that a record read with rdrecord can be written back directly (which would also help with #500).
  2. At least raise a clear error saying that d_signal is required, and how to get it.
Langage dominant
Jupyter Notebook
Étoiles
856
Forks
326
Merge moyen
22 h 46 min
PR mergées (30 j)
40

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de MIT-LCP/wfdb-python

Toutes les issues de MIT-LCP/wfdb-python

Issues similaires

Plus d'issues Data Engineering

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.