Local reproducibility snapshots for researchers using the Python package
Los mantenedores suelen responder en 1 día
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
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
Línea de trabajo
Comienza con los puntos de entrada de la API de Python calculate_household y simulate; después, lee docs/trace-case-study.md y la discusión relacionada household-api-docs#7. Define el contenido del snapshot, el comportamiento de exclusión voluntaria y el flujo de reproducción con una instalación idéntica antes de elegir la interfaz de CLI o de helper. Se considera terminado cuando las ejecuciones locales pueden producir un snapshot completo y la documentación para investigadores explica cómo restaurarlo y reproducirlo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
At the 2026-04-21 meeting with Lars Vilhuber (transcript lines 65-75), the topic of local-copy and caching guidance for researchers using the Python package came up as a piece of reproducibility hygiene distinct from TRACE. Lars's framing: researchers running a simulation on their laptop should be able to preserve exactly what they ran (model + data + reform + environment), so that if they come back to it six months later, they can still reproduce their own work.
This is the non-TRACE version-identification workstream Casper spoke about separately (transcript 415-417): TRACE is for citations a reader cannot rerun; local version-identification is for the researcher themselves.
Policyengine-app#2832 implements the webapp-side version badge. This issue is the Python-package-side equivalent: help a researcher running policyengine locally keep a reproducible record of each run.
What to build
-
A
policyengineCLI command or helper that snapshots everything needed to reproduce a specific local run to a single directory:- Pinned package versions (
pip freezesubset for pe.py + country + country-data) - The reform JSON (if any)
- The h5 content hash (already in the release manifest)
- The simulation output (results + optional per-household frame)
- A short README documenting how to reproduce with the exact install line
- Pinned package versions (
-
Documentation in
household-api-docsshowing researchers how to use this — distinct from the TRACE emission flow. The distinction matters because TRACE targets citation durability; local snapshots target "can I get back to my own work?" -
Default-on behavior for anyone using
policyengine.calculate_householdorpolicyengine.simulatevia the Python API. A subdirectory under the working directory should be created automatically unless the user opts out. The cost of an extra megabyte of disk is worth the reproducibility gain.
Non-goals
- Not TRACE. Local snapshots are not signed, not institutionally attested, not meant to serve as paper citations. They are researcher-local cache.
- Not preservation-grade storage. Researchers responsible for their own backups.
Related
- Transcript lines 65-75 and 415-417 at
/tmp/aea-review/transcript.txt - PolicyEngine/household-api-docs#7 (Python / API docs — this issue adds a docs section)
- PolicyEngine/policyengine-app#2832 (version badge, the webapp-side equivalent)
docs/trace-case-study.md(PR #315 — discusses this as adjacent to but not replaced by TRACE)
- Lenguaje dominante
- Python
- Estrellas
- 8
- Forks
- 10
- Merge medio
- 18 h 24 min
- PR fusionados (30 d)
- 18
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 PolicyEngine/policyengine.py
-
Raise the simulation cache memory warning to 16 GiBPosiblemente ocupada @anth-volk la tomó hace 10 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
PolicyEngine/policyengine.py#549 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
PolicyEngine/policyengine.py#473 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
PolicyEngine/policyengine.py#436 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Certify populace-uk as the UK certified defaultQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
PolicyEngine/policyengine.py#408 ·
Los mantenedores suelen responder en 1 día
-
Check the UK nation filters against policyengine-uk's country formulaPosiblemente ocupada @MaxGhenis la tomó hace 2 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
PolicyEngine/policyengine.py#569 ·
Los mantenedores suelen responder en 1 día
Todos los issues de PolicyEngine/policyengine.py
Issues similares
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Update Python support to 3.15Abiertopython-version
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
bug javascript P2-medium python release:v3.1
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
adrirubio/claude-deck#546 ·
Los mantenedores suelen responder en 1 día
-
area: desktop area: website priority: P2 type: feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
appandflow/stim#3411 · 1 comentario ·
Los mantenedores suelen responder en 1 día