|
1 | 1 | from tlo.notify import notifier |
2 | 2 |
|
3 | 3 | from pathlib import Path |
4 | | -from typing import Optional |
| 4 | +from typing import Optional, List |
5 | 5 | from tlo import Module, Parameter, Types, logging, population |
6 | 6 | from tlo.population import Population |
7 | 7 | import pandas as pd |
|
15 | 15 |
|
16 | 16 | class CollectEventChains(Module): |
17 | 17 |
|
18 | | - def __init__(self, name=None): |
| 18 | + def __init__( |
| 19 | + self, |
| 20 | + name: Optional[str] = None, |
| 21 | + generate_event_chains: Optional[bool] = None, |
| 22 | + modules_of_interest: Optional[List[str]] = None, |
| 23 | + events_to_ignore: Optional[List[str]] = None |
| 24 | + |
| 25 | + ): |
19 | 26 | super().__init__(name) |
| 27 | + |
| 28 | + self.generate_event_chains = generate_event_chains |
| 29 | + self.modules_of_interest = modules_of_interest |
| 30 | + self.events_to_ignore = events_to_ignore |
20 | 31 |
|
21 | 32 | # This is how I am passing data from fnc taking place before event to the one after |
22 | 33 | # It doesn't seem very elegant but not sure how else to go about it |
@@ -57,6 +68,28 @@ def read_parameters(self, resourcefilepath: Optional[Path] = None): |
57 | 68 | def initialise_population(self, population): |
58 | 69 | pass |
59 | 70 |
|
| 71 | + def initialise_simulation(self, sim): |
| 72 | + # Use parameter file values by default, if not overwritten |
| 73 | + self.generate_event_chains = self.parameters['generate_event_chains'] \ |
| 74 | + if self.generate_event_chains is None \ |
| 75 | + else self.generate_event_chains |
| 76 | + |
| 77 | + self.modules_of_interest = self.parameters['modules_of_interest'] \ |
| 78 | + if self.modules_of_interest is None \ |
| 79 | + else self.modules_of_interest |
| 80 | + |
| 81 | + self.events_to_ignore = self.parameters['events_to_ignore'] \ |
| 82 | + if self.events_to_ignore is None \ |
| 83 | + else self.events_to_ignore |
| 84 | + |
| 85 | + def get_generate_event_chains(self) -> bool: |
| 86 | + """Returns `generate_event_chains`. (Should be equal to what is specified by the parameter, but |
| 87 | + overwrite with what was provided in argument if an argument was specified -- provided for backward |
| 88 | + compatibility/debugging.)""" |
| 89 | + return self.parameters['generate_event_chains'] \ |
| 90 | + if self.arg_generate_event_chains is None \ |
| 91 | + else self.arg_generate_event_chains |
| 92 | + |
60 | 93 | def on_birth(self, mother, child): |
61 | 94 | # Could the notification of birth simply take place here? |
62 | 95 | pass |
|
0 commit comments