Josh's custom flepimop2 plugins live in ACCIDDA/COVID19_USA (model_input/plugins/, ~28 modules registered via module="model_input.plugins.<name>" with PYTHONPATH=.). This tracks converting them into generic, namespaced modules in flepimop2-extras (packages/flepimop2-<name>/src/flepimop2/<namespace>/<module>/), one sub-issue per module.
Two foundations gate most of the work and should land first: extracting the shared prior/substitution registry that seven plugins import, and a fetch-if-not-cached data-sourcing helper.
Each module sub-issue is done when the corresponding COVID19_USA config points at the new extras module and reproduces its output. The wider COVID19_USA refactor (config alone drives the science, replacing committed data with data-product parameters, docs rewrite) is the end state we are building toward; it is tracked separately, not here.
Sub-issues
Open decisions for @pearsonca (shape the dependent sub-issues)
- Registry placement: flepimop2 core (a ParameterABC prior-collection hook) vs a shared private extras layer? Gates the parameter/predictive/reporting modules.
- Collapse prior-predictive and posterior-predictive into one module with a mode switch, or keep two?
- Cache/artifact-store contract for the data-sourcing helper (cache dir, content-hash keys, re-fetch policy).
- How much COVID/SMH-specific logic (age labels, regime dates, per-100k denominators, NC schemas) is genericized vs kept in a COVID-specific package?
- Does the reporting-regime fit become a declared config process step, and one package or two (regime + intrinsic)?
- Runpy runners: one generic module, fold into core as subprocess, or drop in favor of real fetch/transform modules? Is in-process execution a hard requirement?
- Do the ~11
model_input/preprocess/*.py scripts each become their own modules, or fold into fewer fetch+transform modules?
Note
Carl's meeting list had a "readme quick start" item; that is prose plus bash (the Quick Start docs), not a migratable module, so it is part of the end-state docs rewrite rather than a flepimop2-extras sub-issue.
Josh's custom flepimop2 plugins live in
ACCIDDA/COVID19_USA(model_input/plugins/, ~28 modules registered viamodule="model_input.plugins.<name>"withPYTHONPATH=.). This tracks converting them into generic, namespaced modules inflepimop2-extras(packages/flepimop2-<name>/src/flepimop2/<namespace>/<module>/), one sub-issue per module.Two foundations gate most of the work and should land first: extracting the shared prior/substitution registry that seven plugins import, and a fetch-if-not-cached data-sourcing helper.
Each module sub-issue is done when the corresponding
COVID19_USAconfig points at the new extras module and reproduces its output. The wider COVID19_USA refactor (config alone drives the science, replacing committed data with data-product parameters, docs rewrite) is the end state we are building toward; it is tracked separately, not here.Sub-issues
Open decisions for @pearsonca (shape the dependent sub-issues)
model_input/preprocess/*.pyscripts each become their own modules, or fold into fewer fetch+transform modules?Note
Carl's meeting list had a "readme quick start" item; that is prose plus bash (the Quick Start docs), not a migratable module, so it is part of the end-state docs rewrite rather than a
flepimop2-extrassub-issue.