This class stores the "medical record" of the person,
indicating which infections the person has recovered from.
Source code in june/epidemiology/infection/immunity.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 | class Immunity:
"""This class stores the "medical record" of the person,
indicating which infections the person has recovered from.
"""
__slots__ = "susceptibility_dict", "effective_multiplier_dict"
def __init__(
self, susceptibility_dict: dict = None, effective_multiplier_dict: dict = None
):
if susceptibility_dict:
self.susceptibility_dict = susceptibility_dict
else:
self.susceptibility_dict = {}
if effective_multiplier_dict:
self.effective_multiplier_dict = effective_multiplier_dict
else:
self.effective_multiplier_dict = {}
def add_immunity(self, infection_ids):
"""
Args:
infection_ids:
"""
for infection_id in infection_ids:
self.susceptibility_dict[infection_id] = 0.0
def add_multiplier(self, infection_id, multiplier):
"""
Args:
infection_id:
multiplier:
"""
self.effective_multiplier_dict[infection_id] = multiplier
def get_susceptibility(self, infection_id):
"""
Args:
infection_id:
"""
return self.susceptibility_dict.get(infection_id, 1.0)
def get_effective_multiplier(self, infection_id):
"""
Args:
infection_id:
"""
multiplier = self.effective_multiplier_dict.get(infection_id, 1.0)
# Print statement for visualization
'''print(
f"Input: infection_id={infection_id} | "
f"Multiplier Found: {'Yes' if infection_id in self.effective_multiplier_dict else 'No'} | "
f"Effective Multiplier: {multiplier}"
)'''
return multiplier
def serialise(self):
""" """
return (
list(self.susceptibility_dict.keys()),
list(self.susceptibility_dict.values()),
)
def is_immune(self, infection_id):
"""
Args:
infection_id:
"""
return self.susceptibility_dict.get(infection_id, 1.0) == 0.0
|
add_immunity(infection_ids)
Parameters:
Name |
Type |
Description |
Default |
infection_ids
|
|
|
required
|
Source code in june/epidemiology/infection/immunity.py
21
22
23
24
25
26
27
28
29 | def add_immunity(self, infection_ids):
"""
Args:
infection_ids:
"""
for infection_id in infection_ids:
self.susceptibility_dict[infection_id] = 0.0
|
add_multiplier(infection_id, multiplier)
Parameters:
Name |
Type |
Description |
Default |
infection_id
|
|
|
required
|
multiplier
|
|
|
required
|
Source code in june/epidemiology/infection/immunity.py
31
32
33
34
35
36
37
38
39 | def add_multiplier(self, infection_id, multiplier):
"""
Args:
infection_id:
multiplier:
"""
self.effective_multiplier_dict[infection_id] = multiplier
|
get_effective_multiplier(infection_id)
Parameters:
Name |
Type |
Description |
Default |
infection_id
|
|
|
required
|
Source code in june/epidemiology/infection/immunity.py
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 | def get_effective_multiplier(self, infection_id):
"""
Args:
infection_id:
"""
multiplier = self.effective_multiplier_dict.get(infection_id, 1.0)
# Print statement for visualization
'''print(
f"Input: infection_id={infection_id} | "
f"Multiplier Found: {'Yes' if infection_id in self.effective_multiplier_dict else 'No'} | "
f"Effective Multiplier: {multiplier}"
)'''
return multiplier
|
get_susceptibility(infection_id)
Parameters:
Name |
Type |
Description |
Default |
infection_id
|
|
|
required
|
Source code in june/epidemiology/infection/immunity.py
| def get_susceptibility(self, infection_id):
"""
Args:
infection_id:
"""
return self.susceptibility_dict.get(infection_id, 1.0)
|
is_immune(infection_id)
Parameters:
Name |
Type |
Description |
Default |
infection_id
|
|
|
required
|
Source code in june/epidemiology/infection/immunity.py
| def is_immune(self, infection_id):
"""
Args:
infection_id:
"""
return self.susceptibility_dict.get(infection_id, 1.0) == 0.0
|
serialise()
Source code in june/epidemiology/infection/immunity.py
| def serialise(self):
""" """
return (
list(self.susceptibility_dict.keys()),
list(self.susceptibility_dict.values()),
)
|