vivarium-public-health 3.1.0__py3-none-any.whl → 3.1.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vivarium_public_health/_version.py +1 -1
- vivarium_public_health/disease/model.py +40 -28
- vivarium_public_health/disease/special_disease.py +7 -8
- vivarium_public_health/disease/state.py +23 -22
- vivarium_public_health/disease/transition.py +11 -10
- vivarium_public_health/mslt/delay.py +5 -5
- vivarium_public_health/mslt/disease.py +5 -5
- vivarium_public_health/mslt/intervention.py +8 -8
- vivarium_public_health/mslt/magic_wand_components.py +3 -3
- vivarium_public_health/mslt/observer.py +4 -6
- vivarium_public_health/mslt/population.py +4 -6
- vivarium_public_health/plugins/parser.py +57 -30
- vivarium_public_health/population/add_new_birth_cohorts.py +3 -5
- vivarium_public_health/population/base_population.py +8 -10
- vivarium_public_health/population/data_transformations.py +4 -5
- vivarium_public_health/population/mortality.py +7 -7
- vivarium_public_health/results/disability.py +1 -3
- vivarium_public_health/results/disease.py +5 -5
- vivarium_public_health/results/mortality.py +3 -3
- vivarium_public_health/results/observer.py +7 -7
- vivarium_public_health/results/risk.py +3 -3
- vivarium_public_health/risks/base_risk.py +4 -4
- vivarium_public_health/risks/distributions.py +15 -15
- vivarium_public_health/risks/effect.py +10 -10
- vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py +17 -16
- vivarium_public_health/treatment/magic_wand.py +3 -3
- vivarium_public_health/treatment/scale_up.py +6 -5
- vivarium_public_health/utilities.py +4 -5
- {vivarium_public_health-3.1.0.dist-info → vivarium_public_health-3.1.2.dist-info}/METADATA +2 -2
- vivarium_public_health-3.1.2.dist-info/RECORD +49 -0
- {vivarium_public_health-3.1.0.dist-info → vivarium_public_health-3.1.2.dist-info}/WHEEL +1 -1
- vivarium_public_health-3.1.0.dist-info/RECORD +0 -49
- {vivarium_public_health-3.1.0.dist-info → vivarium_public_health-3.1.2.dist-info}/LICENSE.txt +0 -0
- {vivarium_public_health-3.1.0.dist-info → vivarium_public_health-3.1.2.dist-info}/top_level.txt +0 -0
@@ -9,7 +9,7 @@ exposure distributions.
|
|
9
9
|
"""
|
10
10
|
|
11
11
|
from abc import ABC, abstractmethod
|
12
|
-
from
|
12
|
+
from collections.abc import Callable
|
13
13
|
|
14
14
|
import numpy as np
|
15
15
|
import pandas as pd
|
@@ -38,7 +38,7 @@ class RiskExposureDistribution(Component, ABC):
|
|
38
38
|
self,
|
39
39
|
risk: EntityString,
|
40
40
|
distribution_type: str,
|
41
|
-
exposure_data:
|
41
|
+
exposure_data: int | float | pd.DataFrame | None = None,
|
42
42
|
) -> None:
|
43
43
|
super().__init__()
|
44
44
|
self.risk = risk
|
@@ -51,14 +51,14 @@ class RiskExposureDistribution(Component, ABC):
|
|
51
51
|
# Setup methods #
|
52
52
|
#################
|
53
53
|
|
54
|
-
def get_configuration(self, builder: "Builder") ->
|
54
|
+
def get_configuration(self, builder: "Builder") -> LayeredConfigTree | None:
|
55
55
|
return builder.configuration[self.risk]
|
56
56
|
|
57
57
|
@abstractmethod
|
58
58
|
def build_all_lookup_tables(self, builder: "Builder") -> None:
|
59
59
|
raise NotImplementedError
|
60
60
|
|
61
|
-
def get_exposure_data(self, builder: Builder) ->
|
61
|
+
def get_exposure_data(self, builder: Builder) -> int | float | pd.DataFrame:
|
62
62
|
if self._exposure_data is not None:
|
63
63
|
return self._exposure_data
|
64
64
|
return self.get_data(builder, self.configuration["data_sources"]["exposure"])
|
@@ -92,11 +92,11 @@ class EnsembleDistribution(RiskExposureDistribution):
|
|
92
92
|
##############
|
93
93
|
|
94
94
|
@property
|
95
|
-
def columns_created(self) ->
|
95
|
+
def columns_created(self) -> list[str]:
|
96
96
|
return [self._propensity]
|
97
97
|
|
98
98
|
@property
|
99
|
-
def initialization_requirements(self) ->
|
99
|
+
def initialization_requirements(self) -> dict[str, list[str]]:
|
100
100
|
return {
|
101
101
|
"requires_columns": [],
|
102
102
|
"requires_values": [],
|
@@ -265,7 +265,7 @@ class ContinuousDistribution(RiskExposureDistribution):
|
|
265
265
|
|
266
266
|
class PolytomousDistribution(RiskExposureDistribution):
|
267
267
|
@property
|
268
|
-
def categories(self) ->
|
268
|
+
def categories(self) -> list[str]:
|
269
269
|
# These need to be sorted so the cumulative sum is in the ocrrect order of categories
|
270
270
|
# and results are therefore reproducible and correct
|
271
271
|
return sorted(self.lookup_tables["exposure"].value_columns)
|
@@ -286,8 +286,8 @@ class PolytomousDistribution(RiskExposureDistribution):
|
|
286
286
|
)
|
287
287
|
|
288
288
|
def get_exposure_value_columns(
|
289
|
-
self, exposure_data:
|
290
|
-
) ->
|
289
|
+
self, exposure_data: int | float | pd.DataFrame
|
290
|
+
) -> list[str] | None:
|
291
291
|
if isinstance(exposure_data, pd.DataFrame):
|
292
292
|
return list(exposure_data["parameter"].unique())
|
293
293
|
return None
|
@@ -342,7 +342,7 @@ class DichotomousDistribution(RiskExposureDistribution):
|
|
342
342
|
)
|
343
343
|
self.lookup_tables["paf"] = self.build_lookup_table(builder, 0.0)
|
344
344
|
|
345
|
-
def get_exposure_data(self, builder: Builder) ->
|
345
|
+
def get_exposure_data(self, builder: Builder) -> int | float | pd.DataFrame:
|
346
346
|
exposure_data = super().get_exposure_data(builder)
|
347
347
|
|
348
348
|
if isinstance(exposure_data, (int, float)):
|
@@ -373,8 +373,8 @@ class DichotomousDistribution(RiskExposureDistribution):
|
|
373
373
|
return exposure_data
|
374
374
|
|
375
375
|
def get_exposure_value_columns(
|
376
|
-
self, exposure_data:
|
377
|
-
) ->
|
376
|
+
self, exposure_data: int | float | pd.DataFrame
|
377
|
+
) -> list[str] | None:
|
378
378
|
if isinstance(exposure_data, pd.DataFrame):
|
379
379
|
return self.get_value_columns(exposure_data)
|
380
380
|
return None
|
@@ -470,9 +470,9 @@ def clip(q):
|
|
470
470
|
|
471
471
|
|
472
472
|
def get_risk_distribution_parameter(
|
473
|
-
value_columns_getter: Callable[[
|
474
|
-
data:
|
475
|
-
) ->
|
473
|
+
value_columns_getter: Callable[[pd.DataFrame], list[str]],
|
474
|
+
data: float | pd.DataFrame,
|
475
|
+
) -> float | pd.Series:
|
476
476
|
if isinstance(data, pd.DataFrame):
|
477
477
|
value_columns = value_columns_getter(data)
|
478
478
|
if len(value_columns) > 1:
|
@@ -7,9 +7,9 @@ This module contains tools for modeling the relationship between risk
|
|
7
7
|
exposure models and disease models.
|
8
8
|
|
9
9
|
"""
|
10
|
-
|
10
|
+
from collections.abc import Callable
|
11
11
|
from importlib import import_module
|
12
|
-
from typing import Any
|
12
|
+
from typing import Any
|
13
13
|
|
14
14
|
import numpy as np
|
15
15
|
import pandas as pd
|
@@ -58,7 +58,7 @@ class RiskEffect(Component):
|
|
58
58
|
return f"risk_effect.{risk.name}_on_{target}"
|
59
59
|
|
60
60
|
@property
|
61
|
-
def configuration_defaults(self) ->
|
61
|
+
def configuration_defaults(self) -> dict[str, Any]:
|
62
62
|
"""Default values for any configurations managed by this component."""
|
63
63
|
return {
|
64
64
|
self.name: {
|
@@ -150,7 +150,7 @@ class RiskEffect(Component):
|
|
150
150
|
self,
|
151
151
|
builder: Builder,
|
152
152
|
configuration=None,
|
153
|
-
) ->
|
153
|
+
) -> str | float | pd.DataFrame:
|
154
154
|
if configuration is None:
|
155
155
|
configuration = self.configuration
|
156
156
|
|
@@ -173,8 +173,8 @@ class RiskEffect(Component):
|
|
173
173
|
return rr_data
|
174
174
|
|
175
175
|
def get_filtered_data(
|
176
|
-
self, builder: "Builder", data_source:
|
177
|
-
) ->
|
176
|
+
self, builder: "Builder", data_source: str | float | pd.DataFrame
|
177
|
+
) -> float | pd.DataFrame:
|
178
178
|
data = super().get_data(builder, data_source)
|
179
179
|
|
180
180
|
if isinstance(data, pd.DataFrame):
|
@@ -191,8 +191,8 @@ class RiskEffect(Component):
|
|
191
191
|
return data
|
192
192
|
|
193
193
|
def process_categorical_data(
|
194
|
-
self, builder: Builder, rr_data:
|
195
|
-
) ->
|
194
|
+
self, builder: Builder, rr_data: str | float | pd.DataFrame
|
195
|
+
) -> tuple[str | float | pd.DataFrame, list[str]]:
|
196
196
|
if not isinstance(rr_data, pd.DataFrame):
|
197
197
|
cat1 = builder.data.load("population.demographic_dimensions")
|
198
198
|
cat1["parameter"] = "cat1"
|
@@ -347,7 +347,7 @@ class NonLogLinearRiskEffect(RiskEffect):
|
|
347
347
|
##############
|
348
348
|
|
349
349
|
@property
|
350
|
-
def configuration_defaults(self) ->
|
350
|
+
def configuration_defaults(self) -> dict[str, Any]:
|
351
351
|
"""Default values for any configurations managed by this component."""
|
352
352
|
return {
|
353
353
|
self.name: {
|
@@ -419,7 +419,7 @@ class NonLogLinearRiskEffect(RiskEffect):
|
|
419
419
|
self,
|
420
420
|
builder: Builder,
|
421
421
|
configuration=None,
|
422
|
-
) ->
|
422
|
+
) -> str | float | pd.DataFrame:
|
423
423
|
if configuration is None:
|
424
424
|
configuration = self.configuration
|
425
425
|
|
@@ -9,7 +9,8 @@ implementation that has been used in several public health models.
|
|
9
9
|
"""
|
10
10
|
|
11
11
|
import pickle
|
12
|
-
from
|
12
|
+
from collections.abc import Callable
|
13
|
+
from typing import Any
|
13
14
|
|
14
15
|
import numpy as np
|
15
16
|
import pandas as pd
|
@@ -39,7 +40,7 @@ class LBWSGDistribution(PolytomousDistribution):
|
|
39
40
|
super().setup(builder)
|
40
41
|
self.category_intervals = self.get_category_intervals(builder)
|
41
42
|
|
42
|
-
def get_category_intervals(self, builder: Builder) ->
|
43
|
+
def get_category_intervals(self, builder: Builder) -> dict[str, dict[str, pd.Interval]]:
|
43
44
|
"""Gets the intervals for each category.
|
44
45
|
|
45
46
|
Parameters
|
@@ -51,7 +52,7 @@ class LBWSGDistribution(PolytomousDistribution):
|
|
51
52
|
-------
|
52
53
|
The intervals for each category.
|
53
54
|
"""
|
54
|
-
categories:
|
55
|
+
categories: dict[str, str] = builder.data.load(f"{self.risk}.categories")
|
55
56
|
category_intervals = {
|
56
57
|
axis: {
|
57
58
|
category: self._parse_description(axis, description)
|
@@ -96,8 +97,8 @@ class LBWSGDistribution(PolytomousDistribution):
|
|
96
97
|
self,
|
97
98
|
axis: str,
|
98
99
|
propensity: pd.Series,
|
99
|
-
categorical_propensity:
|
100
|
-
categorical_exposure:
|
100
|
+
categorical_propensity: pd.Series | None = None,
|
101
|
+
categorical_exposure: pd.Series | None = None,
|
101
102
|
) -> pd.Series:
|
102
103
|
"""Calculate continuous exposures from propensities for a single axis.
|
103
104
|
|
@@ -199,13 +200,13 @@ class LBWSGRisk(Risk):
|
|
199
200
|
##############
|
200
201
|
|
201
202
|
@property
|
202
|
-
def configuration_defaults(self) ->
|
203
|
+
def configuration_defaults(self) -> dict[str, Any]:
|
203
204
|
configuration_defaults = super().configuration_defaults
|
204
205
|
configuration_defaults[self.name]["distribution_type"] = "lbwsg"
|
205
206
|
return configuration_defaults
|
206
207
|
|
207
208
|
@property
|
208
|
-
def columns_created(self) ->
|
209
|
+
def columns_created(self) -> list[str]:
|
209
210
|
return [self.get_exposure_column_name(axis) for axis in self.AXES]
|
210
211
|
|
211
212
|
#####################
|
@@ -224,15 +225,15 @@ class LBWSGRisk(Risk):
|
|
224
225
|
# Setup methods #
|
225
226
|
#################
|
226
227
|
|
227
|
-
def get_propensity_pipeline(self, builder: Builder) ->
|
228
|
+
def get_propensity_pipeline(self, builder: Builder) -> Pipeline | None:
|
228
229
|
# Propensity only used on initialization; not being saved to avoid a cycle
|
229
230
|
return None
|
230
231
|
|
231
|
-
def get_exposure_pipeline(self, builder: Builder) ->
|
232
|
+
def get_exposure_pipeline(self, builder: Builder) -> Pipeline | None:
|
232
233
|
# Exposure only used on initialization; not being saved to avoid a cycle
|
233
234
|
return None
|
234
235
|
|
235
|
-
def get_birth_exposure_pipelines(self, builder: Builder) ->
|
236
|
+
def get_birth_exposure_pipelines(self, builder: Builder) -> dict[str, Pipeline]:
|
236
237
|
required_columns = get_lookup_columns(
|
237
238
|
self.exposure_distribution.lookup_tables.values()
|
238
239
|
)
|
@@ -291,15 +292,15 @@ class LBWSGRiskEffect(RiskEffect):
|
|
291
292
|
##############
|
292
293
|
|
293
294
|
@property
|
294
|
-
def columns_created(self) ->
|
295
|
+
def columns_created(self) -> list[str]:
|
295
296
|
return self.rr_column_names
|
296
297
|
|
297
298
|
@property
|
298
|
-
def columns_required(self) ->
|
299
|
+
def columns_required(self) -> list[str] | None:
|
299
300
|
return ["age", "sex"] + self.lbwsg_exposure_column_names
|
300
301
|
|
301
302
|
@property
|
302
|
-
def initialization_requirements(self) ->
|
303
|
+
def initialization_requirements(self) -> dict[str, list[str]]:
|
303
304
|
return {
|
304
305
|
"requires_columns": ["sex"] + self.lbwsg_exposure_column_names,
|
305
306
|
"requires_values": [],
|
@@ -307,7 +308,7 @@ class LBWSGRiskEffect(RiskEffect):
|
|
307
308
|
}
|
308
309
|
|
309
310
|
@property
|
310
|
-
def rr_column_names(self) ->
|
311
|
+
def rr_column_names(self) -> list[str]:
|
311
312
|
return [self.relative_risk_column_name(age_group) for age_group in self.age_intervals]
|
312
313
|
|
313
314
|
#####################
|
@@ -356,7 +357,7 @@ class LBWSGRiskEffect(RiskEffect):
|
|
356
357
|
|
357
358
|
def get_population_attributable_fraction_source(
|
358
359
|
self, builder: Builder
|
359
|
-
) ->
|
360
|
+
) -> tuple[pd.DataFrame, list[str]]:
|
360
361
|
paf_key = f"{self.risk}.population_attributable_fraction"
|
361
362
|
paf_data = builder.data.load(paf_key)
|
362
363
|
return paf_data, builder.data.value_columns()(paf_key)
|
@@ -376,7 +377,7 @@ class LBWSGRiskEffect(RiskEffect):
|
|
376
377
|
requires_values=[self.relative_risk_pipeline_name],
|
377
378
|
)
|
378
379
|
|
379
|
-
def get_age_intervals(self, builder: Builder) ->
|
380
|
+
def get_age_intervals(self, builder: Builder) -> dict[str, pd.Interval]:
|
380
381
|
age_bins = builder.data.load("population.age_bins").set_index("age_start")
|
381
382
|
exposure = builder.data.load(f"{self.risk}.exposure")
|
382
383
|
exposure = exposure[exposure["age_end"] > 0]
|
@@ -8,7 +8,7 @@ level by providing direct shifts to epidemiological measures.
|
|
8
8
|
|
9
9
|
"""
|
10
10
|
|
11
|
-
from typing import Any
|
11
|
+
from typing import Any
|
12
12
|
|
13
13
|
from vivarium import Component
|
14
14
|
from vivarium.framework.engine import Builder
|
@@ -30,13 +30,13 @@ class AbsoluteShift(Component):
|
|
30
30
|
##############
|
31
31
|
|
32
32
|
@property
|
33
|
-
def configuration_defaults(self) ->
|
33
|
+
def configuration_defaults(self) -> dict[str, Any]:
|
34
34
|
return {
|
35
35
|
f"intervention_on_{self.target.name}": self.CONFIGURATION_DEFAULTS["intervention"]
|
36
36
|
}
|
37
37
|
|
38
38
|
@property
|
39
|
-
def columns_required(self) ->
|
39
|
+
def columns_required(self) -> list[str] | None:
|
40
40
|
return ["age"]
|
41
41
|
|
42
42
|
#####################
|
@@ -7,7 +7,8 @@ This module contains tools for applying a linear scale-up to an intervention
|
|
7
7
|
|
8
8
|
"""
|
9
9
|
|
10
|
-
from
|
10
|
+
from collections.abc import Callable
|
11
|
+
from typing import Any
|
11
12
|
|
12
13
|
import pandas as pd
|
13
14
|
from vivarium import Component
|
@@ -61,7 +62,7 @@ class LinearScaleUp(Component):
|
|
61
62
|
##############
|
62
63
|
|
63
64
|
@property
|
64
|
-
def configuration_defaults(self) ->
|
65
|
+
def configuration_defaults(self) -> dict[str, Any]:
|
65
66
|
return {self.configuration_key: self.CONFIGURATION_DEFAULTS["treatment"]}
|
66
67
|
|
67
68
|
@property
|
@@ -108,11 +109,11 @@ class LinearScaleUp(Component):
|
|
108
109
|
return builder.time.clock()
|
109
110
|
|
110
111
|
# noinspection PyMethodMayBeStatic
|
111
|
-
def get_scale_up_dates(self, builder: Builder) ->
|
112
|
+
def get_scale_up_dates(self, builder: Builder) -> tuple[pd.Timestamp, pd.Timestamp]:
|
112
113
|
scale_up_config = builder.configuration[self.configuration_key]["date"]
|
113
114
|
return pd.Timestamp(scale_up_config["start"]), pd.Timestamp(scale_up_config["end"])
|
114
115
|
|
115
|
-
def get_scale_up_values(self, builder: Builder) ->
|
116
|
+
def get_scale_up_values(self, builder: Builder) -> tuple[LookupTable, LookupTable]:
|
116
117
|
"""Get the values at the start and end of the scale-up period.
|
117
118
|
|
118
119
|
Parameters
|
@@ -137,7 +138,7 @@ class LinearScaleUp(Component):
|
|
137
138
|
return get_endpoint_value("start"), get_endpoint_value("end")
|
138
139
|
|
139
140
|
# noinspection PyMethodMayBeStatic
|
140
|
-
def get_required_pipelines(self, builder: Builder) ->
|
141
|
+
def get_required_pipelines(self, builder: Builder) -> dict[str, Pipeline]:
|
141
142
|
return {}
|
142
143
|
|
143
144
|
def register_intervention_modifiers(self, builder: Builder):
|
@@ -7,9 +7,8 @@ This module contains utility classes and functions for use across
|
|
7
7
|
vivarium_public_health components.
|
8
8
|
|
9
9
|
"""
|
10
|
-
|
10
|
+
from collections.abc import Iterable
|
11
11
|
from pathlib import Path
|
12
|
-
from typing import Any, Dict, Iterable, List, Optional, Union
|
13
12
|
|
14
13
|
import pandas as pd
|
15
14
|
from vivarium.framework.lookup import LookupTable, ScalarValue
|
@@ -77,7 +76,7 @@ DAYS_PER_YEAR = 365.25
|
|
77
76
|
DAYS_PER_MONTH = DAYS_PER_YEAR / 12
|
78
77
|
|
79
78
|
|
80
|
-
def to_time_delta(span_in_days:
|
79
|
+
def to_time_delta(span_in_days: int | float | str):
|
81
80
|
span_in_days = float(span_in_days)
|
82
81
|
days, remainder = span_in_days // 1, span_in_days % 1
|
83
82
|
hours, remainder = (24 * remainder) // 24, (24 * remainder) % 24
|
@@ -90,7 +89,7 @@ def to_years(time: pd.Timedelta) -> float:
|
|
90
89
|
return time / pd.Timedelta(days=DAYS_PER_YEAR)
|
91
90
|
|
92
91
|
|
93
|
-
def is_non_zero(data:
|
92
|
+
def is_non_zero(data: Iterable[ScalarValue] | ScalarValue | pd.DataFrame) -> bool:
|
94
93
|
if isinstance(data, pd.DataFrame):
|
95
94
|
attribute_sum = data.value.sum()
|
96
95
|
elif isinstance(data, Iterable):
|
@@ -103,7 +102,7 @@ def is_non_zero(data: Union[Iterable[ScalarValue], ScalarValue, pd.DataFrame]) -
|
|
103
102
|
|
104
103
|
def get_lookup_columns(
|
105
104
|
lookup_tables: Iterable[LookupTable], necessary_columns: Iterable = ()
|
106
|
-
) ->
|
105
|
+
) -> list[str]:
|
107
106
|
necessary_columns = set(necessary_columns)
|
108
107
|
for lookup_table in lookup_tables:
|
109
108
|
necessary_columns.update(set(lookup_table.key_columns))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: vivarium_public_health
|
3
|
-
Version: 3.1.
|
3
|
+
Version: 3.1.2
|
4
4
|
Summary: Components for modelling diseases, risks, and interventions with ``vivarium``
|
5
5
|
Home-page: https://github.com/ihmeuw/vivarium_public_health
|
6
6
|
Author: The vivarium developers
|
@@ -26,7 +26,7 @@ Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
26
26
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
27
27
|
Classifier: Topic :: Software Development :: Libraries
|
28
28
|
License-File: LICENSE.txt
|
29
|
-
Requires-Dist: vivarium >=3.0
|
29
|
+
Requires-Dist: vivarium >=3.2.0
|
30
30
|
Requires-Dist: layered-config-tree >=1.0.1
|
31
31
|
Requires-Dist: loguru
|
32
32
|
Requires-Dist: numpy <2.0.0
|
@@ -0,0 +1,49 @@
|
|
1
|
+
vivarium_public_health/__about__.py,sha256=RgWycPypKZS80TpSX7o41cREnG8PfguNHDHLuLyl820,487
|
2
|
+
vivarium_public_health/__init__.py,sha256=GDeeP-7OlCBwPuv_xQoB1wNmvCaFsqfTB7qnnYApm0w,1343
|
3
|
+
vivarium_public_health/_version.py,sha256=EkxTxShULe9D7KtZB_iICEO13IyzloAxfYgXHGwpMhQ,22
|
4
|
+
vivarium_public_health/utilities.py,sha256=QNXQ6fhAr1HcV-GwKw7wQLz6QyuNxqNvMA-XujKjTgs,3035
|
5
|
+
vivarium_public_health/disease/__init__.py,sha256=VUJHDLlE6ngo2qHNQUtZ8OWH5H_T7_ao-xsYKDkRmHw,443
|
6
|
+
vivarium_public_health/disease/model.py,sha256=ZwhhQCc8jj_QeJZO2zLtp_yWzqRxvLjuzW7iDUmmBGA,8852
|
7
|
+
vivarium_public_health/disease/models.py,sha256=01UK7yB2zGPFzmlIpvhd-XnGe6vSCMDza3QTidgY7Nc,3479
|
8
|
+
vivarium_public_health/disease/special_disease.py,sha256=kTVuE5rQjUK62ysComG8nB2f61aCKdca9trRB1zsDCQ,14537
|
9
|
+
vivarium_public_health/disease/state.py,sha256=NwTnxB_i05magsJuEc1_Z_0xMMKsqSPXIpibUdxPrWY,22333
|
10
|
+
vivarium_public_health/disease/transition.py,sha256=4g_F8L3Godb4yQjHRr42n95QXo6m0ldI6c8_vu6cTfo,6429
|
11
|
+
vivarium_public_health/mslt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
+
vivarium_public_health/mslt/delay.py,sha256=TrFp9nmv-PSu6xdQXfyeM4X8RrXTLUnQMxOuhdvD-Wk,22787
|
13
|
+
vivarium_public_health/mslt/disease.py,sha256=DONSItBiOUk1qBE6Msw0vrV0XLW4BPzWVxwVK90GK1I,16638
|
14
|
+
vivarium_public_health/mslt/intervention.py,sha256=jgzyDYEypsJDlKeLHDDqcgiwiCTA31VIz7_keS-Jww4,10325
|
15
|
+
vivarium_public_health/mslt/magic_wand_components.py,sha256=TUh0fJ6FLZz0qiknOQAD3T7pZN9GWjGDmtNC6Fnhd9E,3975
|
16
|
+
vivarium_public_health/mslt/observer.py,sha256=r0XqDIGrSO0BjlU1uCeFenuz-NRfpLMtug24LLg60g4,15178
|
17
|
+
vivarium_public_health/mslt/population.py,sha256=LnN9ch_FoPGNbKeIT5BaEFfeAn5itZgZ0q_ZEaZTJEI,7211
|
18
|
+
vivarium_public_health/plugins/__init__.py,sha256=oBW_zfgG_LbwfgTDjUe0btfy9FaDvAbtXho1zQFnz0Y,76
|
19
|
+
vivarium_public_health/plugins/parser.py,sha256=WoUisq0d-PfJtSzKYZ6C-s-fYdQpNiRBE14vKaYE27Y,32921
|
20
|
+
vivarium_public_health/population/__init__.py,sha256=x_9rB93q64Krw-kbBDI1-_U_JsPO1_QrL03AwiFlwXI,243
|
21
|
+
vivarium_public_health/population/add_new_birth_cohorts.py,sha256=Xc3NukpbZQpXCtGJsaaN4_arSjOMZ1YJHGyAVTUhGjU,9034
|
22
|
+
vivarium_public_health/population/base_population.py,sha256=f7eDqqP0Nxj2W0Q9fwSh_GcN1wzoaQPr--iX8QIV-sE,18827
|
23
|
+
vivarium_public_health/population/data_transformations.py,sha256=yxuZuKZt-s8X6XPULbKWXn2w3kAmNLHYvGQ4sWBKlpc,22216
|
24
|
+
vivarium_public_health/population/mortality.py,sha256=komiAsM4ONm6emChAbkiMTYey-5jbnUKjq4B4Q1DOnM,10223
|
25
|
+
vivarium_public_health/results/__init__.py,sha256=rKUZGlRXJgEyFY4a_WJeg3XnC0l34S5guYZ0N9JJS4E,319
|
26
|
+
vivarium_public_health/results/columns.py,sha256=V-L3JgTcsk51Zx9PcUwSgaE1iZjuGyfZ8aShPjynadU,495
|
27
|
+
vivarium_public_health/results/disability.py,sha256=27lXk68KRTxGIhDJ2BXT1IE2XWSVl7ktoXYUCCBJFOM,9844
|
28
|
+
vivarium_public_health/results/disease.py,sha256=NwKDtHNEjPJUB-DqhE-gVCC1TNRbX5qbQBDL06XT3Pg,12517
|
29
|
+
vivarium_public_health/results/mortality.py,sha256=-gxA9t1nSuKe1CiBje6Kkl985yAUkRWj3Cl9PFYLcQc,9644
|
30
|
+
vivarium_public_health/results/observer.py,sha256=ADikaV6TvHVaysWoeux_DcvmzAFT7kpD6KtRSl16SaY,7277
|
31
|
+
vivarium_public_health/results/risk.py,sha256=VArTuuW-xoeuE-EkgAIMVb5la_YGRulIPMLoOmsMnik,6597
|
32
|
+
vivarium_public_health/results/simple_cause.py,sha256=ibdE6KwhDfQWntCVkOEooBcmUydEoupmd3_poHSHyu8,1007
|
33
|
+
vivarium_public_health/results/stratification.py,sha256=4I3YGHVabNAZENE7YboOtWsWU4X-8LUBJ9iwYMbpl6E,5387
|
34
|
+
vivarium_public_health/risks/__init__.py,sha256=z8DcnZGxqNVAyFZm2WAV-IVNGvrSS4izju_0DNe2Ghw,212
|
35
|
+
vivarium_public_health/risks/base_risk.py,sha256=XQ_7rYJS5gh0coEKDqcc_zYdjPDBZlj6-THsIQxL3zs,10888
|
36
|
+
vivarium_public_health/risks/data_transformations.py,sha256=SgdPKc95BBqgMNUdlAQM8k6iaXcpxnjk5B2ySTES1Yg,9269
|
37
|
+
vivarium_public_health/risks/distributions.py,sha256=a63-ihg2itxqgowDZbUix8soErxs_y8TRwsdtTCIUU4,18121
|
38
|
+
vivarium_public_health/risks/effect.py,sha256=BN7XzmCutG5yCIcw9uxl_yKBTtqrL_Y4trrj5wND62w,20735
|
39
|
+
vivarium_public_health/risks/implementations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
+
vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py,sha256=8L-19voqV0URpkbJlgIfdGSJAwEu-y-J9_KGJUJUYgY,17931
|
41
|
+
vivarium_public_health/treatment/__init__.py,sha256=wONElu9aJbBYwpYIovYPYaN_GYfVhPXtTeFWSdQMgA0,222
|
42
|
+
vivarium_public_health/treatment/magic_wand.py,sha256=zGIhrNgB9q6JD7fHlvbDQb3H5e_N_QsROO4Y0kl_JQM,1955
|
43
|
+
vivarium_public_health/treatment/scale_up.py,sha256=hVz0ELXDqlpcExI31rKdepxqcW_hy2hZSa6qCzv6udU,7020
|
44
|
+
vivarium_public_health/treatment/therapeutic_inertia.py,sha256=8Z97s7GfcpfLu1U1ESJSqeEk4L__a3M0GbBV21MFg2s,2346
|
45
|
+
vivarium_public_health-3.1.2.dist-info/LICENSE.txt,sha256=mN4bNLUQNcN9njYRc_3jCZkfPySVpmM6MRps104FxA4,1548
|
46
|
+
vivarium_public_health-3.1.2.dist-info/METADATA,sha256=m30cn1jwJksbLgxSqetpor3zYnZZdHQ6BqDBQ3l2hnA,4061
|
47
|
+
vivarium_public_health-3.1.2.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
48
|
+
vivarium_public_health-3.1.2.dist-info/top_level.txt,sha256=VVInlpzCFD0UNNhjOq_j-a29odzjwUwYFTGfvqbi4dY,23
|
49
|
+
vivarium_public_health-3.1.2.dist-info/RECORD,,
|
@@ -1,49 +0,0 @@
|
|
1
|
-
vivarium_public_health/__about__.py,sha256=RgWycPypKZS80TpSX7o41cREnG8PfguNHDHLuLyl820,487
|
2
|
-
vivarium_public_health/__init__.py,sha256=GDeeP-7OlCBwPuv_xQoB1wNmvCaFsqfTB7qnnYApm0w,1343
|
3
|
-
vivarium_public_health/_version.py,sha256=YVoF76lT0p3dIsqphNnDWuqSia3gZP1S1eQYXZ9FbSE,22
|
4
|
-
vivarium_public_health/utilities.py,sha256=5cl9jjVkOQ1UeXT4DjDMAhaBNNjAsDo-SVJwpv6FDw0,3071
|
5
|
-
vivarium_public_health/disease/__init__.py,sha256=VUJHDLlE6ngo2qHNQUtZ8OWH5H_T7_ao-xsYKDkRmHw,443
|
6
|
-
vivarium_public_health/disease/model.py,sha256=0WIYDEx-hwlUJp6Zl8m8bUMoWxuVkOWsJvh_YlZiOPs,8234
|
7
|
-
vivarium_public_health/disease/models.py,sha256=01UK7yB2zGPFzmlIpvhd-XnGe6vSCMDza3QTidgY7Nc,3479
|
8
|
-
vivarium_public_health/disease/special_disease.py,sha256=3vS1WsO__IwOK0Oe_CUmh3aaKrXIf2CANtmiqlS3pjc,14614
|
9
|
-
vivarium_public_health/disease/state.py,sha256=PUSDE1UlvoCPT6jPEyCTQO1bXjjYxqzdIa6-Bxpd-7I,22370
|
10
|
-
vivarium_public_health/disease/transition.py,sha256=fgeVMy86GLrNpZ3J9E4AC0iA5z3aVdP0ZQ0AWa_odTY,6452
|
11
|
-
vivarium_public_health/mslt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
-
vivarium_public_health/mslt/delay.py,sha256=aOYjMpMSHEVlJs0FuC2gdq3uj6_vKmkhDjoBtC4i9G0,22812
|
13
|
-
vivarium_public_health/mslt/disease.py,sha256=TBqa7yj6k1oUbgkAe0rIgLpbdMLMFs4DiZ1Igi2BQBg,16663
|
14
|
-
vivarium_public_health/mslt/intervention.py,sha256=m6LT0CdJNwhz9X0FQNap1y9K5N4MhUDcvfDaHVukJZQ,10331
|
15
|
-
vivarium_public_health/mslt/magic_wand_components.py,sha256=pnl-7MwIJIus6UjtvVmM15pIZOCbSS1mNfP7nS2bAtw,3981
|
16
|
-
vivarium_public_health/mslt/observer.py,sha256=O4rysQzAGE5oDkdXb0E-qjD9TPFphQHTn7_3Qj7pBL0,15225
|
17
|
-
vivarium_public_health/mslt/population.py,sha256=v_p5VkjndAVJMuXaJQc3lAdzUWHlWCEQWH4A-c4phPA,7255
|
18
|
-
vivarium_public_health/plugins/__init__.py,sha256=oBW_zfgG_LbwfgTDjUe0btfy9FaDvAbtXho1zQFnz0Y,76
|
19
|
-
vivarium_public_health/plugins/parser.py,sha256=v78mj8awpdrB-oqK8udPI_7MZBChoKJOQN_e17fNEj8,31841
|
20
|
-
vivarium_public_health/population/__init__.py,sha256=x_9rB93q64Krw-kbBDI1-_U_JsPO1_QrL03AwiFlwXI,243
|
21
|
-
vivarium_public_health/population/add_new_birth_cohorts.py,sha256=k65Li0LYWl-JFHBUvLjJxkRv12EJw_FVxrOYgbd44q8,9078
|
22
|
-
vivarium_public_health/population/base_population.py,sha256=jJMVWv_EO0ckUZHhh01dRbsRgL491Eg3thRxPwNiAeg,18866
|
23
|
-
vivarium_public_health/population/data_transformations.py,sha256=YmqyrlrIBtHGp1nFyhesqlNryvB7Vr33eVu4fU4HWsA,22260
|
24
|
-
vivarium_public_health/population/mortality.py,sha256=w7b_TUssHjRcnULdXu7MXKfZBjCrlYWbB94oO3JWogI,10264
|
25
|
-
vivarium_public_health/results/__init__.py,sha256=rKUZGlRXJgEyFY4a_WJeg3XnC0l34S5guYZ0N9JJS4E,319
|
26
|
-
vivarium_public_health/results/columns.py,sha256=V-L3JgTcsk51Zx9PcUwSgaE1iZjuGyfZ8aShPjynadU,495
|
27
|
-
vivarium_public_health/results/disability.py,sha256=JQm3Q7CoGCT2AgxaoH6MKkvnq4xF83wfFmEvEOvTmvA,9876
|
28
|
-
vivarium_public_health/results/disease.py,sha256=OwxhPrfDsCnCZSaw8Yiq2AnibWikoqI-gM7xDdhFLcM,12529
|
29
|
-
vivarium_public_health/results/mortality.py,sha256=imH5OGze_rb0i60hmFs-JUjE6XXoH8Gt9wWeut0sk_M,9656
|
30
|
-
vivarium_public_health/results/observer.py,sha256=SQmKL1OCs2gDS8clIuJvZ3WiuspMkGEVDhnuNMJAvHc,7300
|
31
|
-
vivarium_public_health/results/risk.py,sha256=GS4qJVjW3MqsDeRDDac2etFQlqIluxOxIZFMy1Ytmp8,6622
|
32
|
-
vivarium_public_health/results/simple_cause.py,sha256=ibdE6KwhDfQWntCVkOEooBcmUydEoupmd3_poHSHyu8,1007
|
33
|
-
vivarium_public_health/results/stratification.py,sha256=4I3YGHVabNAZENE7YboOtWsWU4X-8LUBJ9iwYMbpl6E,5387
|
34
|
-
vivarium_public_health/risks/__init__.py,sha256=z8DcnZGxqNVAyFZm2WAV-IVNGvrSS4izju_0DNe2Ghw,212
|
35
|
-
vivarium_public_health/risks/base_risk.py,sha256=fNQZIgGHYnWFWdLA9qmtTA66ujCGq2jgA5S1-MadWT8,10900
|
36
|
-
vivarium_public_health/risks/data_transformations.py,sha256=SgdPKc95BBqgMNUdlAQM8k6iaXcpxnjk5B2ySTES1Yg,9269
|
37
|
-
vivarium_public_health/risks/distributions.py,sha256=7xCI2zSpnKUEWow4ywRirVbvbpeJaxo6g9us0-Lh0kE,18197
|
38
|
-
vivarium_public_health/risks/effect.py,sha256=fc_MrhmJLQcpaiZk12klric2c5-BY1gZaWMbsEjBUlY,20766
|
39
|
-
vivarium_public_health/risks/implementations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
-
vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py,sha256=kxuJwkpJzGF8CqwNEemEA7CrohcxKQJtvUXLJtD1xm0,17948
|
41
|
-
vivarium_public_health/treatment/__init__.py,sha256=wONElu9aJbBYwpYIovYPYaN_GYfVhPXtTeFWSdQMgA0,222
|
42
|
-
vivarium_public_health/treatment/magic_wand.py,sha256=i9N57-MEuQv5B6dQ5iVMTAdOPghYcgiRRz-dTzigf1s,1980
|
43
|
-
vivarium_public_health/treatment/scale_up.py,sha256=9Cl3_MaCNPtUPPKXf3hWYepIwMCFlFY24jt2jeyFQO4,7006
|
44
|
-
vivarium_public_health/treatment/therapeutic_inertia.py,sha256=8Z97s7GfcpfLu1U1ESJSqeEk4L__a3M0GbBV21MFg2s,2346
|
45
|
-
vivarium_public_health-3.1.0.dist-info/LICENSE.txt,sha256=mN4bNLUQNcN9njYRc_3jCZkfPySVpmM6MRps104FxA4,1548
|
46
|
-
vivarium_public_health-3.1.0.dist-info/METADATA,sha256=YGem2GjFv7jkEz7_3VkJMsJjMtHolbwiFgBgL0LF4Mk,4061
|
47
|
-
vivarium_public_health-3.1.0.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
|
48
|
-
vivarium_public_health-3.1.0.dist-info/top_level.txt,sha256=VVInlpzCFD0UNNhjOq_j-a29odzjwUwYFTGfvqbi4dY,23
|
49
|
-
vivarium_public_health-3.1.0.dist-info/RECORD,,
|
{vivarium_public_health-3.1.0.dist-info → vivarium_public_health-3.1.2.dist-info}/LICENSE.txt
RENAMED
File without changes
|
{vivarium_public_health-3.1.0.dist-info → vivarium_public_health-3.1.2.dist-info}/top_level.txt
RENAMED
File without changes
|