vivarium-public-health 4.3.9__tar.gz → 4.3.11__tar.gz

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.
Files changed (157) hide show
  1. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/CHANGELOG.rst +8 -0
  2. {vivarium_public_health-4.3.9/src/vivarium_public_health.egg-info → vivarium_public_health-4.3.11}/PKG-INFO +1 -1
  3. vivarium_public_health-4.3.11/src/vivarium_public_health/_version.py +1 -0
  4. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/observer.py +13 -7
  5. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py +17 -19
  6. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11/src/vivarium_public_health.egg-info}/PKG-INFO +1 -1
  7. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/results/test_disability_observer.py +1 -0
  8. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/risks/test_low_birth_weight_and_short_gestation.py +1 -2
  9. vivarium_public_health-4.3.9/src/vivarium_public_health/_version.py +0 -1
  10. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.bandit +0 -0
  11. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.flake8 +0 -0
  12. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.gitattributes +0 -0
  13. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.github/CODEOWNERS +0 -0
  14. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.github/pull_request_template.md +0 -0
  15. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.github/workflows/deploy.yml +0 -0
  16. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.gitignore +0 -0
  17. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.pylintrc +0 -0
  18. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.readthedocs.yml +0 -0
  19. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/.zenodo.json +0 -0
  20. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/CODE_OF_CONDUCT.rst +0 -0
  21. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/CONTRIBUTING.rst +0 -0
  22. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/Jenkinsfile +0 -0
  23. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/LICENSE.txt +0 -0
  24. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/MANIFEST.in +0 -0
  25. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/Makefile +0 -0
  26. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/README.rst +0 -0
  27. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/Makefile +0 -0
  28. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/nitpick-exceptions +0 -0
  29. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/_static/style.css +0 -0
  30. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/_templates/layout.html +0 -0
  31. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/disease/index.rst +0 -0
  32. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/disease/model.rst +0 -0
  33. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/disease/models.rst +0 -0
  34. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/disease/special_disease.rst +0 -0
  35. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/disease/state.rst +0 -0
  36. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/disease/transition.rst +0 -0
  37. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/index.rst +0 -0
  38. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/mslt/delay.rst +0 -0
  39. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/mslt/disease.rst +0 -0
  40. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/mslt/index.rst +0 -0
  41. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/mslt/intervention.rst +0 -0
  42. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/mslt/magic_wand_components.rst +0 -0
  43. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/mslt/observer.rst +0 -0
  44. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/mslt/population.rst +0 -0
  45. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/plugins/index.rst +0 -0
  46. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/plugins/parser.rst +0 -0
  47. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/population/add_new_birth_cohorts.rst +0 -0
  48. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/population/base_population.rst +0 -0
  49. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/population/data_transformations.rst +0 -0
  50. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/population/index.rst +0 -0
  51. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/population/mortality.rst +0 -0
  52. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/disability.rst +0 -0
  53. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/disease.rst +0 -0
  54. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/index.rst +0 -0
  55. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/mortality.rst +0 -0
  56. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/observer.rst +0 -0
  57. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/risk.rst +0 -0
  58. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/simple_cause.rst +0 -0
  59. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/results/stratification.rst +0 -0
  60. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/risks/base_risk.rst +0 -0
  61. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/risks/data_transformations.rst +0 -0
  62. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/risks/distributions.rst +0 -0
  63. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/risks/effect.rst +0 -0
  64. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/risks/implementations/index.rst +0 -0
  65. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/risks/implementations/low_birth_weight_and_short_gestation.rst +0 -0
  66. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/risks/index.rst +0 -0
  67. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/treatment/index.rst +0 -0
  68. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/treatment/magic_wand.rst +0 -0
  69. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/treatment/scale_up.rst +0 -0
  70. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/treatment/therapeutic_inertia.rst +0 -0
  71. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/api_reference/utilities.rst +0 -0
  72. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/conf.py +0 -0
  73. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/index.rst +0 -0
  74. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/tutorials/index.rst +0 -0
  75. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/docs/source/tutorials/risk_exposure.rst +0 -0
  76. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/pyproject.toml +0 -0
  77. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/python_versions.json +0 -0
  78. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/setup.cfg +0 -0
  79. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/setup.py +0 -0
  80. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/__about__.py +0 -0
  81. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/__init__.py +0 -0
  82. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/disease/__init__.py +0 -0
  83. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/disease/exceptions.py +0 -0
  84. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/disease/model.py +0 -0
  85. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/disease/models.py +0 -0
  86. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/disease/special_disease.py +0 -0
  87. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/disease/state.py +0 -0
  88. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/disease/transition.py +0 -0
  89. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/mslt/__init__.py +0 -0
  90. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/mslt/delay.py +0 -0
  91. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/mslt/disease.py +0 -0
  92. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/mslt/intervention.py +0 -0
  93. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/mslt/magic_wand_components.py +0 -0
  94. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/mslt/observer.py +0 -0
  95. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/mslt/population.py +0 -0
  96. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/plugins/__init__.py +0 -0
  97. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/plugins/parser.py +0 -0
  98. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/population/__init__.py +0 -0
  99. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/population/add_new_birth_cohorts.py +0 -0
  100. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/population/base_population.py +0 -0
  101. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/population/data_transformations.py +0 -0
  102. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/population/mortality.py +0 -0
  103. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/__init__.py +0 -0
  104. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/columns.py +0 -0
  105. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/disability.py +0 -0
  106. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/disease.py +0 -0
  107. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/mortality.py +0 -0
  108. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/risk.py +0 -0
  109. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/simple_cause.py +0 -0
  110. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/results/stratification.py +0 -0
  111. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/risks/__init__.py +0 -0
  112. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/risks/base_risk.py +0 -0
  113. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/risks/data_transformations.py +0 -0
  114. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/risks/distributions.py +0 -0
  115. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/risks/effect.py +0 -0
  116. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/risks/implementations/__init__.py +0 -0
  117. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/treatment/__init__.py +0 -0
  118. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/treatment/magic_wand.py +0 -0
  119. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/treatment/scale_up.py +0 -0
  120. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/treatment/therapeutic_inertia.py +0 -0
  121. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health/utilities.py +0 -0
  122. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health.egg-info/SOURCES.txt +0 -0
  123. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health.egg-info/dependency_links.txt +0 -0
  124. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health.egg-info/not-zip-safe +0 -0
  125. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health.egg-info/requires.txt +0 -0
  126. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/src/vivarium_public_health.egg-info/top_level.txt +0 -0
  127. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/__init__.py +0 -0
  128. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/conftest.py +0 -0
  129. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/data/rr_interpolator.csv +0 -0
  130. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/disease/__init__.py +0 -0
  131. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/disease/test_disease.py +0 -0
  132. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/disease/test_special_disease.py +0 -0
  133. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/mock_artifact.py +0 -0
  134. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/plugins/__init__.py +0 -0
  135. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/plugins/test_parser.py +0 -0
  136. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/population/__init__.py +0 -0
  137. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/population/conftest.py +0 -0
  138. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/population/test_add_new_birth_cohort.py +0 -0
  139. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/population/test_base_population.py +0 -0
  140. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/population/test_data_transformations.py +0 -0
  141. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/population/test_mortality.py +0 -0
  142. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/results/__init__.py +0 -0
  143. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/results/test_categorical_risk_observer.py +0 -0
  144. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/results/test_disability.py +0 -0
  145. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/results/test_disease_observer.py +0 -0
  146. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/results/test_mortality_observer.py +0 -0
  147. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/results/test_stratification.py +0 -0
  148. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/risks/__init__.py +0 -0
  149. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/risks/conftest.py +0 -0
  150. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/risks/test_base_risk.py +0 -0
  151. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/risks/test_data_transformations.py +0 -0
  152. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/risks/test_distributions.py +0 -0
  153. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/risks/test_effect.py +0 -0
  154. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/test_utilities.py +0 -0
  155. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/treatment/__init__.py +0 -0
  156. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tests/treatment/test_scale_up.py +0 -0
  157. {vivarium_public_health-4.3.9 → vivarium_public_health-4.3.11}/tox.ini +0 -0
@@ -1,3 +1,11 @@
1
+ **4.3.11 - 09/24/25**
2
+
3
+ - Refactor: Simplify LBWSG parsing logic
4
+
5
+ **4.3.10 - 09/23/25**
6
+
7
+ - Bugfix: Fix bug in PublicHealthObserver to retain stratification columns in results
8
+
1
9
  **4.3.9 - 09/16/25**
2
10
 
3
11
  - Bugfix: require alive column in register_transition_count_observation()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vivarium_public_health
3
- Version: 4.3.9
3
+ Version: 4.3.11
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
@@ -0,0 +1 @@
1
+ __version__ = "4.3.11"
@@ -12,6 +12,7 @@ from collections.abc import Callable
12
12
 
13
13
  import pandas as pd
14
14
  from vivarium.framework.engine import Builder
15
+ from vivarium.framework.event import Event
15
16
  from vivarium.framework.results import Observer
16
17
 
17
18
  from vivarium_public_health.results.columns import COLUMNS
@@ -30,7 +31,7 @@ class PublicHealthObserver(Observer):
30
31
  self,
31
32
  builder: Builder,
32
33
  name: str,
33
- pop_filter: str,
34
+ pop_filter: str = "tracked==True",
34
35
  when: str = "collect_metrics",
35
36
  requires_columns: list[str] = [],
36
37
  requires_values: list[str] = [],
@@ -38,6 +39,7 @@ class PublicHealthObserver(Observer):
38
39
  excluded_stratifications: list[str] = [],
39
40
  aggregator_sources: list[str] | None = None,
40
41
  aggregator: Callable[[pd.DataFrame], float | pd.Series] = len,
42
+ to_observe: Callable[[Event], bool] = lambda event: True,
41
43
  ) -> None:
42
44
  """Registers an adding observation to the results system.
43
45
 
@@ -73,6 +75,9 @@ class PublicHealthObserver(Observer):
73
75
  List of population view columns to be used in the `aggregator`.
74
76
  aggregator
75
77
  Function that computes the quantity for this observation.
78
+ to_observe
79
+ Function that takes an event and returns a boolean indicating whether
80
+ the observation should be performed for that event.
76
81
  """
77
82
  builder.results.register_adding_observation(
78
83
  name=name,
@@ -85,6 +90,7 @@ class PublicHealthObserver(Observer):
85
90
  excluded_stratifications=excluded_stratifications,
86
91
  aggregator_sources=aggregator_sources,
87
92
  aggregator=aggregator,
93
+ to_observe=to_observe,
88
94
  )
89
95
 
90
96
  def format_results(self, measure: str, results: pd.DataFrame) -> pd.DataFrame:
@@ -134,7 +140,7 @@ class PublicHealthObserver(Observer):
134
140
  def format(self, measure: str, results: pd.DataFrame) -> pd.DataFrame:
135
141
  """Format results.
136
142
 
137
- This method should be overwritten in subclasses to provide custom formatting
143
+ This method can be overwritten in subclasses to provide custom formatting
138
144
  for the results.
139
145
 
140
146
  Parameters
@@ -148,12 +154,12 @@ class PublicHealthObserver(Observer):
148
154
  -------
149
155
  The formatted results.
150
156
  """
151
- return results
157
+ return results.reset_index()
152
158
 
153
159
  def get_measure_column(self, measure: str, results: pd.DataFrame) -> pd.Series:
154
160
  """Get the 'measure' column.
155
161
 
156
- This method should be overwritten in subclasses to provide the 'measure' column.
162
+ This method can be overwritten in subclasses to provide the 'measure' column.
157
163
 
158
164
  Parameters
159
165
  ----------
@@ -171,7 +177,7 @@ class PublicHealthObserver(Observer):
171
177
  def get_entity_type_column(self, measure: str, results: pd.DataFrame) -> pd.Series:
172
178
  """Get the 'entity_type' column.
173
179
 
174
- This method should be overwritten in subclasses to provide the 'entity_type' column.
180
+ This method can be overwritten in subclasses to provide the 'entity_type' column.
175
181
 
176
182
  Parameters
177
183
  ----------
@@ -189,7 +195,7 @@ class PublicHealthObserver(Observer):
189
195
  def get_entity_column(self, measure: str, results: pd.DataFrame) -> pd.Series:
190
196
  """Get the 'entity' column.
191
197
 
192
- This method should be overwritten in subclasses to provide the 'entity' column.
198
+ This method can be overwritten in subclasses to provide the 'entity' column.
193
199
 
194
200
  Parameters
195
201
  ----------
@@ -207,7 +213,7 @@ class PublicHealthObserver(Observer):
207
213
  def get_sub_entity_column(self, measure: str, results: pd.DataFrame) -> pd.Series:
208
214
  """Get the 'sub_entity' column.
209
215
 
210
- This method should be overwritten in subclasses to provide the 'sub_entity' column.
216
+ This method can be overwritten in subclasses to provide the 'sub_entity' column.
211
217
 
212
218
  Parameters
213
219
  ----------
@@ -9,6 +9,7 @@ implementation that has been used in several public health models.
9
9
  """
10
10
 
11
11
  import pickle
12
+ import re
12
13
  from collections.abc import Callable
13
14
  from typing import Any
14
15
 
@@ -119,13 +120,12 @@ class LBWSGDistribution(PolytomousDistribution):
119
120
  The intervals for each category.
120
121
  """
121
122
  categories: dict[str, str] = builder.data.load(f"{self.risk}.categories")
122
- category_intervals = {
123
- axis: {
124
- category: self._parse_description(axis, description)
125
- for category, description in categories.items()
126
- }
127
- for axis in [BIRTH_WEIGHT, GESTATIONAL_AGE]
128
- }
123
+ category_intervals = {GESTATIONAL_AGE: {}, BIRTH_WEIGHT: {}}
124
+
125
+ for category, description in categories.items():
126
+ gestation_interval, birth_weight_interval = self._parse_description(description)
127
+ category_intervals[GESTATIONAL_AGE][category] = gestation_interval
128
+ category_intervals[BIRTH_WEIGHT][category] = birth_weight_interval
129
129
  return category_intervals
130
130
 
131
131
  ##################
@@ -224,7 +224,7 @@ class LBWSGDistribution(PolytomousDistribution):
224
224
  ##################
225
225
 
226
226
  @staticmethod
227
- def _parse_description(axis: str, description: str) -> pd.Interval:
227
+ def _parse_description(description: str) -> tuple[pd.Interval, pd.Interval]:
228
228
  """Parses a string corresponding to a low birth weight and short gestation
229
229
  category to an Interval.
230
230
 
@@ -235,17 +235,15 @@ class LBWSGDistribution(PolytomousDistribution):
235
235
  An example of an edge case of birth weight:
236
236
  'Neonatal preterm and LBWSG (estimation years) - [36, 37) wks, [4000, 9999] g'
237
237
  """
238
- endpoints = {
239
- BIRTH_WEIGHT: [
240
- float(val)
241
- for val in description.split(", [")[1].split(")")[0].split("]")[0].split(", ")
242
- ],
243
- GESTATIONAL_AGE: [
244
- float(val)
245
- for val in description.split("- [")[1].split(")")[0].split("+")[0].split(", ")
246
- ],
247
- }[axis]
248
- return pd.Interval(*endpoints, closed="left") # noqa
238
+ lbwsg_values = [float(val) for val in re.findall(r"(\d+)", description)]
239
+ if len(list(lbwsg_values)) != 4:
240
+ raise ValueError(
241
+ f"Could not parse LBWSG description '{description}'. Expected 4 numeric values."
242
+ )
243
+ return (
244
+ pd.Interval(*lbwsg_values[:2], closed="left"), # Gestational Age
245
+ pd.Interval(*lbwsg_values[2:], closed="left"), # Birth Weight
246
+ )
249
247
 
250
248
 
251
249
  class LBWSGRisk(Risk):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vivarium_public_health
3
- Version: 4.3.9
3
+ Version: 4.3.11
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
@@ -72,6 +72,7 @@ def test_disability_observer_setup(mocker):
72
72
  excluded_stratifications=observer.configuration.exclude,
73
73
  aggregator_sources=cause_pipelines,
74
74
  aggregator=observer.disability_weight_aggregator,
75
+ to_observe=mocker.ANY,
75
76
  )
76
77
 
77
78
  assert set(observer.disability_classes) == set([DiseaseState, RiskAttributableDisease])
@@ -36,8 +36,7 @@ from vivarium_public_health.utilities import to_snake_case
36
36
  ],
37
37
  )
38
38
  def test_parsing_lbwsg_descriptions(description, expected_weight_values, expected_age_values):
39
- weight_interval = LBWSGDistribution._parse_description("birth_weight", description)
40
- age_interval = LBWSGDistribution._parse_description("gestational_age", description)
39
+ age_interval, weight_interval = LBWSGDistribution._parse_description(description)
41
40
  assert weight_interval.left == expected_weight_values[0]
42
41
  assert weight_interval.right == expected_weight_values[1]
43
42
  assert age_interval.left == expected_age_values[0]
@@ -1 +0,0 @@
1
- __version__ = "4.3.9"