Blank credits pass validation but cause valid grade records to disappear
Los mantenedores suelen responder en 2 días
@vivek-3728 ya está trabajando en esto.
Desde el 20/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 0
- Forks
- 5
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 27
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
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.
Más de techcsispit/grade-tracker
-
add accepts Infinity scores and writes records that immediately fail validationPosiblemente ocupada @vivek-3728 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
techcsispit/grade-tracker#69 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
feat: add cross-file integrity verification and repairPosiblemente ocupada @deepmhatre13 la tomó hoy. Abiertofeature
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
techcsispit/grade-tracker#66 ·
Los mantenedores suelen responder en 2 días
Todos los issues de techcsispit/grade-tracker
Issues similares
-
Support .aac audio uploadsPosiblemente ocupada @julien731 la tomó hoy. Abiertofeature
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nimblehq/audio-transcriber#153 ·
-
help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
antonyrag/ragleap-core#1062 ·
-
needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
gke-labs/kube-agents#4321 ·
Los mantenedores suelen responder en 1 día
-
enhancement help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Git-Hospital/githealthcheck#61 ·
Los mantenedores suelen responder en 1 día
-
changelog investigate
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
ramnes/notion-sdk-py#433 ·