-
Notifications
You must be signed in to change notification settings - Fork 670
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Module overrides #566
Module overrides #566
Conversation
Codecov Report
@@ Coverage Diff @@
## master #566 +/- ##
=========================================
+ Coverage 76% 76% +<1%
- Complexity 2202 2246 +44
=========================================
Files 85 86 +1
Lines 14546 14645 +99
Branches 1974 1991 +17
=========================================
+ Hits 11088 11227 +139
+ Misses 2887 2855 -32
+ Partials 571 563 -8
Continue to review full report at Codecov.
|
Note to self: once this is eventually complete and merged, update the README on the populations repo: https://github.com/synthetichealth/populations |
05631c8
to
2f00073
Compare
Once this is merged I'll add a wiki page for it as well |
Starting point for "module overrides". The idea here is that we can provide a module override file at runtime that defines parameters that override parts of the generic modules. There are a number of possible use cases for this, for example pre-defining alternative populations (think "internationalization", such as "run with this override file to produce a population matching all condition prevalence rates in Germany"). Also includes a task that can generate a base set of override files with some configurability.
The format of the overrides file is a java properties file, with format:
example:
The way that this feature is used is by setting a config property:
Note that I also extracted the common "for each module" logic into a new utility method since the exact same boilerplate was used in 5+ places. Apologies for the extra diffs but if you view it in "ignore whitespace mode" it's more obvious what the actual change to those files was.