Blank credits pass validation but cause valid grade records to disappear
I maintainer di solito rispondono entro 2 giorni
@vivek-3728 ci sta già lavorando.
Dal 20/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
I noticed that the grade tracker accepts blank credits during validation but silently skips the same records when loading them for other commands.
For example, I created a CSV containing:
student_id,subject,score,max_score,date,credits,semester
S1,Mathematics,95,100,2026-10-06,,1
Then I ran:
python -m grade_tracker validate
python -m grade_tracker list
python -m grade_tracker summary S1
The results were inconsistent:
validatereported that the CSV was valid.listshowed no grades.summary S1reported no records for the student.- JSON output commands failed while converting the blank credits value.
I expected all commands to treat blank credits as the documented default of 3.0, so the Mathematics assessment would appear normally in listings, summaries, GPA calculations, and exports.
Looking through the code, the validator explicitly replaces blank credits with "3.0". However, the normal loader uses:
float(row.get("credits", 3.0))
Since the credits field exists but contains an empty string, dict.get() returns "" instead of the default. This causes float("") to fail, and the loader silently skips the record.
This means a CSV can pass validation while valid assessments disappear from calculations and reports without any warning.
I expected validation and all data-loading commands to apply the same default-credit rules consistently, rather than interpreting the same CSV differently.
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 5
- Merge medio
- 1g 15h
- PR unite (30g)
- 27
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
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.
Altre issue di techcsispit/grade-tracker
-
add accepts Infinity scores and writes records that immediately fail validationForse già presa @vivek-3728 l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
techcsispit/grade-tracker#69 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
feat: add cross-file integrity verification and repairForse già presa @deepmhatre13 l’ha presa 1 giorno fa. Apertafeature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
techcsispit/grade-tracker#66 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di techcsispit/grade-tracker
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
NousResearch/hermes-agent#147104 ·
I maintainer di solito rispondono entro 1 giorno
-
[oblt-aw][autodoc] Document new required `shared-org-key` input for `obs-aw-dependency-review`Forse già presa @github-actions l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
bot-triaged module: inductor oncall: pt2 topic: fuzzer triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
getchaintips leaves out the active tip once a header is staged on it, where Core always lists itAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
btclib-org/btclib-node#2158 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
patrick-hudson/put.gd-desktop#979 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno