Silent data mutation, missing provenance in the compile pipeline and DEA URL (404)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- data-engineering
Línea de trabajo
Empieza con scripts/retrieve_data_from_dea.py y ejecuta python scripts/retrieve_data_from_dea.py para reproducir el 404; después inspecciona compile_cost_assumptions.py y las funciones de pipeline mencionadas. Usa snakemake -call --forceall para observar los problemas más amplios. Se considera terminado cuando estos hallazgos se hayan concretado en cambios específicos y la validación, la procedencia y el comportamiento de las entradas manuales estén cubiertos por pruebas o por un informe de ejecución auditable.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Checklist
Describe the Bug
Findings from a first-pass review of technology-data v0.15.0, as discussed with @euronion. Listing them together for triage; happy to split into separate focused issues.
1. No validation of output parameters
docs/parameter.csv lists 11 core parameters; the output contains 59. Nothing validates output parameters against a known list, so new or misspelled parameters pass through silently.
2. Hardcoded metadata in compile_cost_assumptions.py
The script holds 6+ hardcoded dicts (dea_sheet_names, uncrtnty_lookup, cost_year_2020, cost_year_2019, source_dict, per-tech usecols). Proposal: move them to a config file, compare against the data at runtime, and report new/missing entries at the end of the run. Same pattern applies to parameters, technologies and units.
3. Imputation is not recorded
.fillna(0), .ffill(), .interpolate() and .mean() are applied silently — the output does not distinguish sourced values from imputed ones. Proposal: tag imputed values in further description or in a dedicated data_quality column.
4. retrieve_data_from_dea.py is broken
It points at the old DEA URL (404). DEA has restructured into 8 category pages under technology-catalogues. The script was never updated (the new URL appears in the v0.14.0 release notes, but data was only downloaded manually) and is not wired into Snakemake.
5. manual_input.csv entries are silently overwritten
add_manual_input uses combine_first so manual values beat DEA data, but later .loc assignments in add_co2_intensity(), add_solar_from_other() and the hardcoded biomass fuel values overwrite manual_input entries unconditionally. These legacy functions predate the manual_input mechanism. Proposal: end the pipeline after data collection + manual input.
6. No per-run data provenance report
Items 1–5 are the same underlying problem: the pipeline mutates data silently. A per-run report covering source coverage, imputations, overrides, unknown parameters and data freshness would make all of it auditable. Combined with dataset versioning, this would let a user reconstruct where any value came from.
Minimal example
Item 4 reproduces on its own:
python scripts/retrieve_data_from_dea.py
The remaining items are observable in the output of a full pipeline run:
snakemake -call --forceall
Error Message
retrieve_data_from_dea.py — the configured DEA URL returns HTTP 404:
None
- Lenguaje dominante
- Python
- Estrellas
- 132
- Forks
- 59
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 PyPSA/technology-data
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
PyPSA/technology-data#271 ·
-
data: Add ACER's CONE studyAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
PyPSA/technology-data#284 ·
-
energy_penalty() applies the capture energy penalty to only one of six technologiesPosiblemente ocupada @millingermarkus la tomó hace 28 días. Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
PyPSA/technology-data#283 ·
-
feature
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
PyPSA/technology-data#282 · 4 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
PyPSA/technology-data#276 · 1 comentario ·
Todos los issues de PyPSA/technology-data
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
modelcontextprotocol/python-sdk#3648 ·
Los mantenedores suelen responder en 1 día
-
docs good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
VenetoStato/giorgio#6 ·
-
Claiming namespace ddalusAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
EclipseFdn/open-vsx.org#13831 ·
Los mantenedores suelen responder en 1 día
-
feature request
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 2 días