vivarium-public-health 2.1.0__py3-none-any.whl → 2.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.
@@ -1 +1 @@
1
- __version__ = "2.1.0"
1
+ __version__ = "2.1.2"
@@ -11,10 +11,11 @@ from typing import Callable, Dict, List, Optional
11
11
  import numpy as np
12
12
  import pandas as pd
13
13
  from vivarium.framework.engine import Builder
14
- from vivarium.framework.lookup import LookupTableData
14
+ from vivarium.framework.lookup import LookupTable, LookupTableData
15
15
  from vivarium.framework.population import PopulationView, SimulantData
16
+ from vivarium.framework.randomness import RandomnessStream
16
17
  from vivarium.framework.state_machine import State, Transient, Transition, Trigger
17
- from vivarium.framework.values import list_combiner, union_post_processor
18
+ from vivarium.framework.values import Pipeline, list_combiner, union_post_processor
18
19
 
19
20
  from vivarium_public_health.disease.transition import (
20
21
  ProportionTransition,
@@ -323,65 +324,41 @@ class DiseaseState(BaseDiseaseState):
323
324
  self.clock = builder.time.clock()
324
325
 
325
326
  prevalence_data = self.load_prevalence_data(builder)
326
- self.prevalence = builder.lookup.build_table(
327
- prevalence_data, key_columns=["sex"], parameter_columns=["age", "year"]
328
- )
327
+ self.prevalence = self.get_prevalence(builder, prevalence_data)
329
328
 
330
329
  birth_prevalence_data = self.load_birth_prevalence_data(builder)
331
- self.birth_prevalence = builder.lookup.build_table(
332
- birth_prevalence_data, key_columns=["sex"], parameter_columns=["year"]
333
- )
330
+ self.birth_prevalence = self.get_birth_prevalence(builder, birth_prevalence_data)
334
331
 
335
332
  dwell_time_data = self.load_dwell_time_data(builder)
336
- self.dwell_time = builder.value.register_value_producer(
337
- f"{self.state_id}.dwell_time",
338
- source=builder.lookup.build_table(
339
- dwell_time_data, key_columns=["sex"], parameter_columns=["age", "year"]
340
- ),
341
- requires_columns=["age", "sex"],
342
- )
333
+ self.dwell_time = self.get_dwell_time_pipeline(builder, dwell_time_data)
343
334
 
344
335
  disability_weight_data = self.load_disability_weight_data(builder)
345
336
  self.has_disability = is_non_zero(disability_weight_data)
346
- self.base_disability_weight = builder.lookup.build_table(
347
- disability_weight_data, key_columns=["sex"], parameter_columns=["age", "year"]
348
- )
349
- self.disability_weight = builder.value.register_value_producer(
350
- f"{self.state_id}.disability_weight",
351
- source=self.compute_disability_weight,
352
- requires_columns=["age", "sex", "alive", self.model],
337
+ self.base_disability_weight = self.get_base_disability_weight(
338
+ builder, disability_weight_data
353
339
  )
340
+
341
+ self.disability_weight = self.get_disability_weight_pipeline(builder)
342
+
354
343
  builder.value.register_value_modifier(
355
344
  "disability_weight", modifier=self.disability_weight
356
345
  )
357
346
 
358
347
  excess_mortality_data = self.load_excess_mortality_rate_data(builder)
359
348
  self.has_excess_mortality = is_non_zero(excess_mortality_data)
360
- self.base_excess_mortality_rate = builder.lookup.build_table(
361
- excess_mortality_data, key_columns=["sex"], parameter_columns=["age", "year"]
362
- )
363
- self.excess_mortality_rate = builder.value.register_rate_producer(
364
- self.excess_mortality_rate_pipeline_name,
365
- source=self.compute_excess_mortality_rate,
366
- requires_columns=["age", "sex", "alive", self.model],
367
- requires_values=[self.excess_mortality_rate_paf_pipeline_name],
368
- )
369
- paf = builder.lookup.build_table(0)
370
- self.joint_paf = builder.value.register_value_producer(
371
- self.excess_mortality_rate_paf_pipeline_name,
372
- source=lambda idx: [paf(idx)],
373
- preferred_combiner=list_combiner,
374
- preferred_post_processor=union_post_processor,
349
+ self.base_excess_mortality_rate = self.get_base_excess_mortality_rate(
350
+ builder, excess_mortality_data
375
351
  )
352
+ self.excess_mortality_rate = self.get_excess_mortality_rate_pipeline(builder)
353
+ self.joint_paf = self.get_joint_paf(builder)
354
+
376
355
  builder.value.register_value_modifier(
377
356
  "mortality_rate",
378
357
  modifier=self.adjust_mortality_rate,
379
358
  requires_values=[self.excess_mortality_rate_pipeline_name],
380
359
  )
381
360
 
382
- self.randomness_prevalence = builder.randomness.get_stream(
383
- f"{self.state_id}_prevalent_cases"
384
- )
361
+ self.randomness_prevalence = self.get_randomness_prevalence(builder)
385
362
 
386
363
  #################
387
364
  # Setup methods #
@@ -393,12 +370,55 @@ class DiseaseState(BaseDiseaseState):
393
370
  else:
394
371
  return builder.data.load(f"{self.cause_type}.{self.state_id}.prevalence")
395
372
 
373
+ def get_prevalence(
374
+ self, builder: Builder, prevalence_data: LookupTableData
375
+ ) -> LookupTable:
376
+ """Builds a LookupTable for the prevalence of this state.
377
+
378
+ Parameters
379
+ ----------
380
+ builder
381
+ Interface to access simulation managers.
382
+ prevalence_data
383
+ The data to use to build the LookupTable.
384
+
385
+ Returns
386
+ -------
387
+ LookupTable
388
+ The LookupTable for the prevalence of this state.
389
+ """
390
+ return builder.lookup.build_table(
391
+ prevalence_data, key_columns=["sex"], parameter_columns=["age", "year"]
392
+ )
393
+
396
394
  def load_birth_prevalence_data(self, builder: Builder) -> LookupTableData:
397
395
  if "birth_prevalence" in self._get_data_functions:
398
396
  return self._get_data_functions["birth_prevalence"](builder, self.state_id)
399
397
  else:
400
398
  return 0
401
399
 
400
+ def get_birth_prevalence(
401
+ self, builder: Builder, birth_prevalence_data: LookupTableData
402
+ ) -> LookupTable:
403
+ """
404
+ Builds a LookupTable for the birth prevalence of this state.
405
+
406
+ Parameters
407
+ ----------
408
+ builder
409
+ Interface to access simulation managers.
410
+ birth_prevalence_data
411
+ The data to use to build the LookupTable.
412
+
413
+ Returns
414
+ -------
415
+ LookupTable
416
+ The LookupTable for the birth prevalence of this state.
417
+ """
418
+ return builder.lookup.build_table(
419
+ birth_prevalence_data, key_columns=["sex"], parameter_columns=["year"]
420
+ )
421
+
402
422
  def load_dwell_time_data(self, builder: Builder) -> LookupTableData:
403
423
  if "dwell_time" in self._get_data_functions:
404
424
  dwell_time = self._get_data_functions["dwell_time"](builder, self.state_id)
@@ -414,6 +434,17 @@ class DiseaseState(BaseDiseaseState):
414
434
 
415
435
  return dwell_time
416
436
 
437
+ def get_dwell_time_pipeline(
438
+ self, builder: Builder, dwell_time_data: LookupTableData
439
+ ) -> Pipeline:
440
+ return builder.value.register_value_producer(
441
+ f"{self.state_id}.dwell_time",
442
+ source=builder.lookup.build_table(
443
+ dwell_time_data, key_columns=["sex"], parameter_columns=["age", "year"]
444
+ ),
445
+ requires_columns=["age", "sex"],
446
+ )
447
+
417
448
  def load_disability_weight_data(self, builder: Builder) -> LookupTableData:
418
449
  if "disability_weight" in self._get_data_functions:
419
450
  disability_weight = self._get_data_functions["disability_weight"](
@@ -429,6 +460,35 @@ class DiseaseState(BaseDiseaseState):
429
460
 
430
461
  return disability_weight
431
462
 
463
+ def get_base_disability_weight(
464
+ self, builder: Builder, disability_weight_data: LookupTableData
465
+ ) -> LookupTable:
466
+ """
467
+ Builds a LookupTable for the base disability weight of this state.
468
+
469
+ Parameters
470
+ ----------
471
+ builder
472
+ Interface to access simulation managers.
473
+ disability_weight_data
474
+ The data to use to build the LookupTable.
475
+
476
+ Returns
477
+ -------
478
+ LookupTable
479
+ The LookupTable for the disability weight of this state.
480
+ """
481
+ return builder.lookup.build_table(
482
+ disability_weight_data, key_columns=["sex"], parameter_columns=["age", "year"]
483
+ )
484
+
485
+ def get_disability_weight_pipeline(self, builder: Builder) -> Pipeline:
486
+ return builder.value.register_value_producer(
487
+ f"{self.state_id}.disability_weight",
488
+ source=self.compute_disability_weight,
489
+ requires_columns=["age", "sex", "alive", self.model],
490
+ )
491
+
432
492
  def load_excess_mortality_rate_data(self, builder: Builder) -> LookupTableData:
433
493
  if "excess_mortality_rate" in self._get_data_functions:
434
494
  return self._get_data_functions["excess_mortality_rate"](builder, self.state_id)
@@ -439,6 +499,48 @@ class DiseaseState(BaseDiseaseState):
439
499
  f"{self.cause_type}.{self.state_id}.excess_mortality_rate"
440
500
  )
441
501
 
502
+ def get_base_excess_mortality_rate(
503
+ self, builder: Builder, excess_mortality_data: LookupTableData
504
+ ) -> LookupTable:
505
+ """
506
+ Builds a LookupTable for the base excess mortality rate of this state.
507
+
508
+ Parameters
509
+ ----------
510
+ builder
511
+ Interface to access simulation managers.
512
+ excess_mortality_data
513
+ The data to use to build the LookupTable.
514
+
515
+ Returns
516
+ -------
517
+ LookupTable
518
+ The LookupTable for the base excess mortality rate of this state.
519
+ """
520
+ return builder.lookup.build_table(
521
+ excess_mortality_data, key_columns=["sex"], parameter_columns=["age", "year"]
522
+ )
523
+
524
+ def get_excess_mortality_rate_pipeline(self, builder: Builder) -> Pipeline:
525
+ return builder.value.register_rate_producer(
526
+ self.excess_mortality_rate_pipeline_name,
527
+ source=self.compute_excess_mortality_rate,
528
+ requires_columns=["age", "sex", "alive", self.model],
529
+ requires_values=[self.excess_mortality_rate_paf_pipeline_name],
530
+ )
531
+
532
+ def get_joint_paf(self, builder: Builder) -> Pipeline:
533
+ paf = builder.lookup.build_table(0)
534
+ return builder.value.register_value_producer(
535
+ self.excess_mortality_rate_paf_pipeline_name,
536
+ source=lambda idx: [paf(idx)],
537
+ preferred_combiner=list_combiner,
538
+ preferred_post_processor=union_post_processor,
539
+ )
540
+
541
+ def get_randomness_prevalence(self, builder: Builder) -> RandomnessStream:
542
+ return builder.randomness.get_stream(f"{self.state_id}_prevalent_cases")
543
+
442
544
  ##################
443
545
  # Public methods #
444
546
  ##################
@@ -128,6 +128,19 @@ class Mortality(Component):
128
128
 
129
129
  # noinspection PyMethodMayBeStatic
130
130
  def get_all_cause_mortality_rate(self, builder: Builder) -> Union[LookupTable, Pipeline]:
131
+ """
132
+ Load all cause mortality rate data and build a lookup table or pipeline.
133
+
134
+ Parameters
135
+ ----------
136
+ builder
137
+ Interface to access simulation managers.
138
+
139
+ Returns
140
+ -------
141
+ Union[LookupTable, Pipeline]
142
+ A lookup table or pipeline returning the all cause mortality rate.
143
+ """
131
144
  acmr_data = builder.data.load("cause.all_causes.cause_specific_mortality_rate")
132
145
  return builder.lookup.build_table(
133
146
  acmr_data, key_columns=["sex"], parameter_columns=["age", "year"]
@@ -135,6 +148,19 @@ class Mortality(Component):
135
148
 
136
149
  # noinspection PyMethodMayBeStatic
137
150
  def get_life_expectancy(self, builder: Builder) -> Union[LookupTable, Pipeline]:
151
+ """
152
+ Load life expectancy data and build a lookup table or pipeline.
153
+
154
+ Parameters
155
+ ----------
156
+ builder
157
+ Interface to access simulation managers.
158
+
159
+ Returns
160
+ -------
161
+ Union[LookupTable, Pipeline]
162
+ A lookup table or pipeline returning the life expectancy.
163
+ """
138
164
  life_expectancy_data = builder.data.load(
139
165
  "population.theoretical_minimum_risk_life_expectancy"
140
166
  )
@@ -142,6 +168,20 @@ class Mortality(Component):
142
168
 
143
169
  # noinspection PyMethodMayBeStatic
144
170
  def get_raw_unmodeled_csmr(self, builder: Builder) -> Union[LookupTable, Pipeline]:
171
+ """
172
+ Load unmodeled cause specific mortality rate data and build a lookup
173
+ table or pipeline.
174
+
175
+ Parameters
176
+ ----------
177
+ builder
178
+ Interface to access simulation managers.
179
+
180
+ Returns
181
+ -------
182
+ Union[LookupTable, Pipeline]
183
+ A lookup table or pipeline returning the unmodeled csmr.
184
+ """
145
185
  unmodeled_causes = builder.configuration.unmodeled_causes
146
186
  raw_csmr = 0.0
147
187
  for idx, cause in enumerate(unmodeled_causes):
@@ -121,12 +121,40 @@ class RiskEffect(Component):
121
121
  return builder.value.get_value(self.exposure_pipeline_name)
122
122
 
123
123
  def get_relative_risk_source(self, builder: Builder) -> LookupTable:
124
+ """
125
+ Get the relative risk source for this risk effect model.
126
+
127
+ Parameters
128
+ ----------
129
+ builder
130
+ Interface to access simulation managers.
131
+
132
+ Returns
133
+ -------
134
+ LookupTable
135
+ A lookup table containing the relative risk data for this risk
136
+ effect model.
137
+ """
124
138
  relative_risk_data = get_relative_risk_data(builder, self.risk, self.target)
125
139
  return builder.lookup.build_table(
126
140
  relative_risk_data, key_columns=["sex"], parameter_columns=["age", "year"]
127
141
  )
128
142
 
129
143
  def get_population_attributable_fraction_source(self, builder: Builder) -> LookupTable:
144
+ """
145
+ Get the population attributable fraction source for this risk effect model.
146
+
147
+ Parameters
148
+ ----------
149
+ builder
150
+ Interface to access simulation managers.
151
+
152
+ Returns
153
+ -------
154
+ LookupTable
155
+ A lookup table containing the population attributable fraction data
156
+ for this risk effect model.
157
+ """
130
158
  paf_data = get_population_attributable_fraction_data(builder, self.risk, self.target)
131
159
  return builder.lookup.build_table(
132
160
  paf_data, key_columns=["sex"], parameter_columns=["age", "year"]
@@ -127,6 +127,20 @@ class LinearScaleUp(Component):
127
127
  return get_endpoint("start"), get_endpoint("end")
128
128
 
129
129
  def get_scale_up_values(self, builder: Builder) -> Tuple[LookupTable, LookupTable]:
130
+ """
131
+ Get the values at the start and end of the scale-up period.
132
+
133
+ Parameters
134
+ ----------
135
+ builder
136
+ Interface to access simulation managers.
137
+
138
+ Returns
139
+ -------
140
+ LookupTable
141
+ A tuple of lookup tables returning the values at the start and end
142
+ of the scale-up period.
143
+ """
130
144
  scale_up_config = builder.configuration[self.configuration_key]["value"]
131
145
 
132
146
  def get_endpoint_value(endpoint_type: str) -> LookupTable:
@@ -172,6 +186,23 @@ class LinearScaleUp(Component):
172
186
  def get_endpoint_value_from_data(
173
187
  self, builder: Builder, endpoint_type: str
174
188
  ) -> LookupTable:
189
+ """
190
+ Get the value at the start or end of the scale-up period from data.
191
+
192
+ Parameters
193
+ ----------
194
+ builder
195
+ Interface to access simulation managers.
196
+ endpoint_type
197
+ The type of endpoint to get the value for. Allowed values are
198
+ "start" and "end".
199
+
200
+ Returns
201
+ -------
202
+ LookupTable
203
+ A lookup table returning the value at the start or end of the
204
+ scale-up period.
205
+ """
175
206
  if endpoint_type == "start":
176
207
  endpoint_data = builder.data.load(f"{self.treatment}.exposure")
177
208
  elif endpoint_type == "end":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vivarium-public-health
3
- Version: 2.1.0
3
+ Version: 2.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
@@ -1,12 +1,12 @@
1
1
  vivarium_public_health/__about__.py,sha256=RgWycPypKZS80TpSX7o41cREnG8PfguNHDHLuLyl820,487
2
2
  vivarium_public_health/__init__.py,sha256=tomMOl3PI7O8GdxDWGBiBjT0Bwd31GpyQTYTzwIv108,361
3
- vivarium_public_health/_version.py,sha256=Xybt2skBZamGMNlLuOX1IG-h4uIxqUDGAO8MIGWrJac,22
3
+ vivarium_public_health/_version.py,sha256=UiuBcRXPtXxPUBDdp0ZDvWl0U9Db1kMNfT3oAfhxqLg,22
4
4
  vivarium_public_health/utilities.py,sha256=_X9sZQ7flsi2sVWQ9zrf8GJw8QwZsPZm3NUjx1gu7bM,2555
5
5
  vivarium_public_health/disease/__init__.py,sha256=RuuiRcvAJfX9WQGt_WZZjxN7Cu3E5rMTmuaRS-UaFPM,419
6
6
  vivarium_public_health/disease/model.py,sha256=7xFGo6JqPjQjm2VUZ3u3ThXWSzmitTOCZ8N9PTTL6MU,8253
7
7
  vivarium_public_health/disease/models.py,sha256=uiB2qUlxBsPPPmHJ8Cgot_T1ItZ8RYSNVOBtxtn93Y0,3478
8
8
  vivarium_public_health/disease/special_disease.py,sha256=gl8aK0z6afCxiCZxgJafLe4xmbR91zk3079hsi2pUAw,14751
9
- vivarium_public_health/disease/state.py,sha256=yZ76I4mRHfa-KG2lhCJZpVWkgxip0j6r3AkQD5SpTzg,21165
9
+ vivarium_public_health/disease/state.py,sha256=TBbUQ8zALN5BdpJM2WPUYYhlZ4xcu-UXKc3rOZUj72Y,24403
10
10
  vivarium_public_health/disease/transition.py,sha256=Or5nucRzeGG-UuE_CGkPZ9qE35-Ed9I9LWHj4rjknCc,5334
11
11
  vivarium_public_health/metrics/__init__.py,sha256=bWAvvdCm_7RPIazo12qFohA2x5-_EV6ceV8IhKS37sk,209
12
12
  vivarium_public_health/metrics/disability.py,sha256=zm0vAG00wj44CHjYGdT2_pebgARa3XXIerrR06t80rc,3984
@@ -25,12 +25,12 @@ vivarium_public_health/population/__init__.py,sha256=17rtbcNVK5LtCCxAex7P7Q_vYpw
25
25
  vivarium_public_health/population/add_new_birth_cohorts.py,sha256=qNsZjvaJ7Et8_Kw7JNyRshHHRA3pEQMM4TSqCp48Gr4,9092
26
26
  vivarium_public_health/population/base_population.py,sha256=U9FibBoPuYWvUqPFCUIVwjBxQVuhTb58cUy-2EJSzio,15345
27
27
  vivarium_public_health/population/data_transformations.py,sha256=M1qZlDyWGQsVR33LtrKW2ts1OIXOT2TYoQEtjzXQ_1k,21804
28
- vivarium_public_health/population/mortality.py,sha256=Cv7OSSPLb6e9N0TaEBKz2mPbmDWVk3eEpdaKrzXQu6M,9004
28
+ vivarium_public_health/population/mortality.py,sha256=w1Oxb958LjUkNwxJ0vdA3TZndpeNiaH3d7RukLas_oQ,10085
29
29
  vivarium_public_health/risks/__init__.py,sha256=XvX12RgD0iF5PBoc2StsOhxJmK1FP-RaAYrjIT9MfDs,232
30
30
  vivarium_public_health/risks/base_risk.py,sha256=6D7YlxQOdQm-Kw5_vjpQmFqU7spF-lTy14WEEefRQlA,6494
31
31
  vivarium_public_health/risks/data_transformations.py,sha256=-nEbytxaQEB1zaAacA46A3WATeKle2FvrnePx-NPCeg,19602
32
32
  vivarium_public_health/risks/distributions.py,sha256=EYMjhOmci4O7orU2-qQ55uOzqplqByn4GokbKgcZgfQ,10800
33
- vivarium_public_health/risks/effect.py,sha256=chpFI4UGqO_uaUjB9LCCPaHeVorHeYv0sTjXzphdwPo,6555
33
+ vivarium_public_health/risks/effect.py,sha256=GH_n5j6RQY-DdV0hSH-_Qo10lXVZRdMyANh6wfrLtiI,7295
34
34
  vivarium_public_health/risks/implementations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py,sha256=G8-KMklSwd2Sl29oMX8WFPKKv1tBtRUOqLuAmoxOos0,18027
36
36
  vivarium_public_health/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -38,10 +38,10 @@ vivarium_public_health/testing/mock_artifact.py,sha256=T6Fw0rSEGfDr7Lqq-YxcJBmZt
38
38
  vivarium_public_health/testing/utils.py,sha256=bbAEGw5kRzVB_80uc5u5mp47NMj2xD6Nw7vlEsT_-Wg,2199
39
39
  vivarium_public_health/treatment/__init__.py,sha256=wONElu9aJbBYwpYIovYPYaN_GYfVhPXtTeFWSdQMgA0,222
40
40
  vivarium_public_health/treatment/magic_wand.py,sha256=iPKFN3VjfiMy_XvN94UqM-FUrGuI0ULwmOdAGdOepYQ,1979
41
- vivarium_public_health/treatment/scale_up.py,sha256=zTPMfKG38dGBj14QpBeLlmUixx1y_XIMElmTpkklydA,6714
41
+ vivarium_public_health/treatment/scale_up.py,sha256=7QKBgAII4dwkds9gdbQ5d6oDaD02iwcQCVcYRN-B4Mg,7573
42
42
  vivarium_public_health/treatment/therapeutic_inertia.py,sha256=VwZ7t90zzfGoBusduIvcE4lDe5zTvzmHiUNB3u2I52Y,2339
43
- vivarium_public_health-2.1.0.dist-info/LICENSE.txt,sha256=mN4bNLUQNcN9njYRc_3jCZkfPySVpmM6MRps104FxA4,1548
44
- vivarium_public_health-2.1.0.dist-info/METADATA,sha256=qmXdDtOXL1ZEE6zsUdDGG8CUPAvloE3-oQzToUduRnA,3430
45
- vivarium_public_health-2.1.0.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
46
- vivarium_public_health-2.1.0.dist-info/top_level.txt,sha256=VVInlpzCFD0UNNhjOq_j-a29odzjwUwYFTGfvqbi4dY,23
47
- vivarium_public_health-2.1.0.dist-info/RECORD,,
43
+ vivarium_public_health-2.1.2.dist-info/LICENSE.txt,sha256=mN4bNLUQNcN9njYRc_3jCZkfPySVpmM6MRps104FxA4,1548
44
+ vivarium_public_health-2.1.2.dist-info/METADATA,sha256=3LZgXExgpesqC24nJKzasGyEaGqiS9NVAmbuVUNMEAM,3430
45
+ vivarium_public_health-2.1.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
46
+ vivarium_public_health-2.1.2.dist-info/top_level.txt,sha256=VVInlpzCFD0UNNhjOq_j-a29odzjwUwYFTGfvqbi4dY,23
47
+ vivarium_public_health-2.1.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5