vivarium-public-health 4.3.10__tar.gz → 4.3.12__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.10 → vivarium_public_health-4.3.12}/CHANGELOG.rst +8 -0
  2. {vivarium_public_health-4.3.10/src/vivarium_public_health.egg-info → vivarium_public_health-4.3.12}/PKG-INFO +1 -1
  3. vivarium_public_health-4.3.12/src/vivarium_public_health/_version.py +1 -0
  4. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/stratification.py +8 -9
  5. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py +17 -19
  6. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12/src/vivarium_public_health.egg-info}/PKG-INFO +1 -1
  7. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/results/test_stratification.py +9 -8
  8. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/risks/test_low_birth_weight_and_short_gestation.py +1 -2
  9. vivarium_public_health-4.3.10/src/vivarium_public_health/_version.py +0 -1
  10. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.bandit +0 -0
  11. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.flake8 +0 -0
  12. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.gitattributes +0 -0
  13. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.github/CODEOWNERS +0 -0
  14. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.github/pull_request_template.md +0 -0
  15. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.github/workflows/deploy.yml +0 -0
  16. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.gitignore +0 -0
  17. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.pylintrc +0 -0
  18. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.readthedocs.yml +0 -0
  19. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/.zenodo.json +0 -0
  20. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/CODE_OF_CONDUCT.rst +0 -0
  21. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/CONTRIBUTING.rst +0 -0
  22. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/Jenkinsfile +0 -0
  23. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/LICENSE.txt +0 -0
  24. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/MANIFEST.in +0 -0
  25. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/Makefile +0 -0
  26. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/README.rst +0 -0
  27. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/Makefile +0 -0
  28. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/nitpick-exceptions +0 -0
  29. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/_static/style.css +0 -0
  30. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/_templates/layout.html +0 -0
  31. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/disease/index.rst +0 -0
  32. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/disease/model.rst +0 -0
  33. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/disease/models.rst +0 -0
  34. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/disease/special_disease.rst +0 -0
  35. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/disease/state.rst +0 -0
  36. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/disease/transition.rst +0 -0
  37. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/index.rst +0 -0
  38. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/mslt/delay.rst +0 -0
  39. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/mslt/disease.rst +0 -0
  40. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/mslt/index.rst +0 -0
  41. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/mslt/intervention.rst +0 -0
  42. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/mslt/magic_wand_components.rst +0 -0
  43. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/mslt/observer.rst +0 -0
  44. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/mslt/population.rst +0 -0
  45. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/plugins/index.rst +0 -0
  46. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/plugins/parser.rst +0 -0
  47. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/population/add_new_birth_cohorts.rst +0 -0
  48. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/population/base_population.rst +0 -0
  49. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/population/data_transformations.rst +0 -0
  50. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/population/index.rst +0 -0
  51. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/population/mortality.rst +0 -0
  52. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/disability.rst +0 -0
  53. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/disease.rst +0 -0
  54. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/index.rst +0 -0
  55. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/mortality.rst +0 -0
  56. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/observer.rst +0 -0
  57. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/risk.rst +0 -0
  58. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/simple_cause.rst +0 -0
  59. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/results/stratification.rst +0 -0
  60. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/risks/base_risk.rst +0 -0
  61. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/risks/data_transformations.rst +0 -0
  62. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/risks/distributions.rst +0 -0
  63. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/risks/effect.rst +0 -0
  64. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/risks/implementations/index.rst +0 -0
  65. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/risks/implementations/low_birth_weight_and_short_gestation.rst +0 -0
  66. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/risks/index.rst +0 -0
  67. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/treatment/index.rst +0 -0
  68. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/treatment/magic_wand.rst +0 -0
  69. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/treatment/scale_up.rst +0 -0
  70. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/treatment/therapeutic_inertia.rst +0 -0
  71. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/api_reference/utilities.rst +0 -0
  72. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/conf.py +0 -0
  73. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/index.rst +0 -0
  74. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/tutorials/index.rst +0 -0
  75. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/docs/source/tutorials/risk_exposure.rst +0 -0
  76. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/pyproject.toml +0 -0
  77. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/python_versions.json +0 -0
  78. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/setup.cfg +0 -0
  79. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/setup.py +0 -0
  80. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/__about__.py +0 -0
  81. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/__init__.py +0 -0
  82. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/disease/__init__.py +0 -0
  83. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/disease/exceptions.py +0 -0
  84. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/disease/model.py +0 -0
  85. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/disease/models.py +0 -0
  86. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/disease/special_disease.py +0 -0
  87. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/disease/state.py +0 -0
  88. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/disease/transition.py +0 -0
  89. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/mslt/__init__.py +0 -0
  90. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/mslt/delay.py +0 -0
  91. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/mslt/disease.py +0 -0
  92. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/mslt/intervention.py +0 -0
  93. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/mslt/magic_wand_components.py +0 -0
  94. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/mslt/observer.py +0 -0
  95. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/mslt/population.py +0 -0
  96. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/plugins/__init__.py +0 -0
  97. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/plugins/parser.py +0 -0
  98. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/population/__init__.py +0 -0
  99. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/population/add_new_birth_cohorts.py +0 -0
  100. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/population/base_population.py +0 -0
  101. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/population/data_transformations.py +0 -0
  102. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/population/mortality.py +0 -0
  103. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/__init__.py +0 -0
  104. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/columns.py +0 -0
  105. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/disability.py +0 -0
  106. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/disease.py +0 -0
  107. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/mortality.py +0 -0
  108. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/observer.py +0 -0
  109. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/risk.py +0 -0
  110. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/results/simple_cause.py +0 -0
  111. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/risks/__init__.py +0 -0
  112. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/risks/base_risk.py +0 -0
  113. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/risks/data_transformations.py +0 -0
  114. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/risks/distributions.py +0 -0
  115. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/risks/effect.py +0 -0
  116. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/risks/implementations/__init__.py +0 -0
  117. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/treatment/__init__.py +0 -0
  118. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/treatment/magic_wand.py +0 -0
  119. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/treatment/scale_up.py +0 -0
  120. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/treatment/therapeutic_inertia.py +0 -0
  121. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health/utilities.py +0 -0
  122. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health.egg-info/SOURCES.txt +0 -0
  123. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health.egg-info/dependency_links.txt +0 -0
  124. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health.egg-info/not-zip-safe +0 -0
  125. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health.egg-info/requires.txt +0 -0
  126. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/src/vivarium_public_health.egg-info/top_level.txt +0 -0
  127. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/__init__.py +0 -0
  128. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/conftest.py +0 -0
  129. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/data/rr_interpolator.csv +0 -0
  130. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/disease/__init__.py +0 -0
  131. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/disease/test_disease.py +0 -0
  132. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/disease/test_special_disease.py +0 -0
  133. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/mock_artifact.py +0 -0
  134. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/plugins/__init__.py +0 -0
  135. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/plugins/test_parser.py +0 -0
  136. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/population/__init__.py +0 -0
  137. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/population/conftest.py +0 -0
  138. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/population/test_add_new_birth_cohort.py +0 -0
  139. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/population/test_base_population.py +0 -0
  140. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/population/test_data_transformations.py +0 -0
  141. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/population/test_mortality.py +0 -0
  142. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/results/__init__.py +0 -0
  143. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/results/test_categorical_risk_observer.py +0 -0
  144. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/results/test_disability.py +0 -0
  145. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/results/test_disability_observer.py +0 -0
  146. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/results/test_disease_observer.py +0 -0
  147. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/results/test_mortality_observer.py +0 -0
  148. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/risks/__init__.py +0 -0
  149. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/risks/conftest.py +0 -0
  150. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/risks/test_base_risk.py +0 -0
  151. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/risks/test_data_transformations.py +0 -0
  152. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/risks/test_distributions.py +0 -0
  153. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/risks/test_effect.py +0 -0
  154. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/test_utilities.py +0 -0
  155. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/treatment/__init__.py +0 -0
  156. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tests/treatment/test_scale_up.py +0 -0
  157. {vivarium_public_health-4.3.10 → vivarium_public_health-4.3.12}/tox.ini +0 -0
@@ -1,3 +1,11 @@
1
+ **4.3.12 - 10/06/25**
2
+
3
+ - Register event_year as a stratification in the ResultsStratifier
4
+
5
+ **4.3.11 - 09/24/25**
6
+
7
+ - Refactor: Simplify LBWSG parsing logic
8
+
1
9
  **4.3.10 - 09/23/25**
2
10
 
3
11
  - Bugfix: Fix bug in PublicHealthObserver to retain stratification columns in results
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vivarium_public_health
3
- Version: 4.3.10
3
+ Version: 4.3.12
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.12"
@@ -62,15 +62,14 @@ class ResultsStratifier(Component):
62
62
  is_vectorized=True,
63
63
  requires_columns=["current_time"],
64
64
  )
65
- # TODO [MIC-4232]: simulants occasionally have event year of end_year_year+1 if the end time plus step size
66
- # lands in the next year. possible solution detailed in ticket
67
- # builder.results.register_stratification(
68
- # "event_year",
69
- # [str(year) for year in range(self.start_year, self.end_year + 1)],
70
- # mapper=self.map_year,
71
- # is_vectorized=True,
72
- # requires_columns=["event_time"],
73
- # )
65
+ builder.results.register_stratification(
66
+ "event_year",
67
+ [str(year) for year in range(self.start_year, self.end_year + 2)],
68
+ excluded_categories=[str(self.end_year + 1)],
69
+ mapper=self.map_year,
70
+ is_vectorized=True,
71
+ requires_columns=["event_time"],
72
+ )
74
73
  # TODO [MIC-3892]: simulants occasionally have entrance year of start_year-1 if the start time minus step size
75
74
  # lands in the previous year. possible solution detailed in ticket
76
75
  # builder.results.register_stratification(
@@ -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.10
3
+ Version: 4.3.12
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
@@ -104,13 +104,14 @@ def test_results_stratifier_register_stratifications(mocker):
104
104
  is_vectorized=True,
105
105
  requires_columns=["current_time"],
106
106
  )
107
- # builder.results.register_stratification.assert_any_call(
108
- # "event_year",
109
- # years_list,
110
- # mapper=rs.map_year,
111
- # is_vectorized=True,
112
- # requires_columns=["event_time"],
113
- # )
107
+ builder.results.register_stratification.assert_any_call(
108
+ "event_year",
109
+ years_list + [str(int(years_list[-1]) + 1)],
110
+ excluded_categories=[str(int(years_list[-1]) + 1)],
111
+ mapper=rs.map_year,
112
+ is_vectorized=True,
113
+ requires_columns=["event_time"],
114
+ )
114
115
  # builder.results.register_stratification.assert_any_call(
115
116
  # "entrance_year",
116
117
  # years_list,
@@ -129,7 +130,7 @@ def test_results_stratifier_register_stratifications(mocker):
129
130
  builder.results.register_stratification.assert_any_call(
130
131
  "sex", ["Female", "Male"], requires_columns=["sex"]
131
132
  )
132
- assert builder.results.register_stratification.call_count == 3
133
+ assert builder.results.register_stratification.call_count == 4
133
134
 
134
135
 
135
136
  def test_results_stratifier_map_age_groups():
@@ -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.10"