vivarium-public-health 4.0.1__tar.gz → 4.1.0__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.
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/CHANGELOG.rst +8 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/PKG-INFO +2 -2
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/setup.py +1 -1
- vivarium_public_health-4.1.0/src/vivarium_public_health/_version.py +1 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/disease/model.py +15 -1
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/disease/transition.py +8 -1
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/population/data_transformations.py +10 -8
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health.egg-info/PKG-INFO +2 -2
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health.egg-info/requires.txt +1 -1
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/disease/test_disease.py +101 -0
- vivarium_public_health-4.0.1/src/vivarium_public_health/_version.py +0 -1
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.bandit +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.flake8 +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.gitattributes +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.github/CODEOWNERS +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.github/pull_request_template.md +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.github/workflows/deploy.yml +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.gitignore +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.pylintrc +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.readthedocs.yml +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.zenodo.json +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/CODE_OF_CONDUCT.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/CONTRIBUTING.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/Jenkinsfile +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/LICENSE.txt +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/MANIFEST.in +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/Makefile +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/README.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/Makefile +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/nitpick-exceptions +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/_static/style.css +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/_templates/layout.html +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/disease/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/disease/model.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/disease/models.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/disease/special_disease.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/disease/state.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/disease/transition.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/mslt/delay.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/mslt/disease.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/mslt/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/mslt/intervention.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/mslt/magic_wand_components.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/mslt/observer.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/mslt/population.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/plugins/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/plugins/parser.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/population/add_new_birth_cohorts.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/population/base_population.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/population/data_transformations.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/population/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/population/mortality.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/disability.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/disease.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/mortality.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/observer.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/risk.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/simple_cause.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/results/stratification.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/risks/base_risk.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/risks/data_transformations.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/risks/distributions.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/risks/effect.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/risks/implementations/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/risks/implementations/low_birth_weight_and_short_gestation.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/risks/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/treatment/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/treatment/magic_wand.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/treatment/scale_up.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/treatment/therapeutic_inertia.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/utilities.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/conf.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/tutorials/index.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/tutorials/risk_exposure.rst +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/pyproject.toml +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/python_versions.json +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/setup.cfg +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/__about__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/disease/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/disease/exceptions.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/disease/models.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/disease/special_disease.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/disease/state.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/mslt/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/mslt/delay.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/mslt/disease.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/mslt/intervention.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/mslt/magic_wand_components.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/mslt/observer.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/mslt/population.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/plugins/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/plugins/parser.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/population/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/population/add_new_birth_cohorts.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/population/base_population.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/population/mortality.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/columns.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/disability.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/disease.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/mortality.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/observer.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/risk.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/simple_cause.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/results/stratification.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/risks/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/risks/base_risk.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/risks/data_transformations.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/risks/distributions.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/risks/effect.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/risks/implementations/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/risks/implementations/low_birth_weight_and_short_gestation.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/treatment/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/treatment/magic_wand.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/treatment/scale_up.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/treatment/therapeutic_inertia.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/utilities.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health.egg-info/SOURCES.txt +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health.egg-info/dependency_links.txt +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health.egg-info/not-zip-safe +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health.egg-info/top_level.txt +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/conftest.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/data/rr_interpolator.csv +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/disease/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/disease/test_special_disease.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/mock_artifact.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/plugins/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/plugins/test_parser.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/population/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/population/conftest.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/population/test_add_new_birth_cohort.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/population/test_base_population.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/population/test_data_transformations.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/population/test_mortality.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_categorical_risk_observer.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_disability.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_disability_observer.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_disease_observer.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_mortality_observer.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_stratification.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/conftest.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/test_base_risk.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/test_data_transformations.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/test_distributions.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/test_effect.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/test_low_birth_weight_and_short_gestation.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/test_utilities.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/treatment/__init__.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/treatment/test_scale_up.py +0 -0
- {vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tox.ini +0 -0
@@ -1,3 +1,11 @@
|
|
1
|
+
**4.1.0 - 05/20/25**
|
2
|
+
|
3
|
+
- Feature: Update RateTransition to have configuration key for rate conversion type
|
4
|
+
|
5
|
+
**4.0.2 - 05/01/25**
|
6
|
+
|
7
|
+
- Bugfix: Fix configuration key for untracking age in FertilityCrudeBirthRate
|
8
|
+
|
1
9
|
**4.0.1 - 03/21/25**
|
2
10
|
|
3
11
|
- Feature: Update required resources for all components
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: vivarium_public_health
|
3
|
-
Version: 4.0
|
3
|
+
Version: 4.1.0
|
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.
|
29
|
+
Requires-Dist: vivarium>=3.4.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 @@
|
|
1
|
+
__version__ = "4.1.0"
|
@@ -14,14 +14,16 @@ from functools import partial
|
|
14
14
|
from typing import Any
|
15
15
|
|
16
16
|
import pandas as pd
|
17
|
+
from layered_config_tree import ConfigurationError
|
17
18
|
from vivarium.framework.engine import Builder
|
19
|
+
from vivarium.framework.event import Event
|
18
20
|
from vivarium.framework.population import SimulantData
|
19
21
|
from vivarium.framework.state_machine import Machine
|
20
22
|
from vivarium.types import DataInput, LookupTableData
|
21
23
|
|
22
24
|
from vivarium_public_health.disease.exceptions import DiseaseModelError
|
23
25
|
from vivarium_public_health.disease.state import BaseDiseaseState, SusceptibleState
|
24
|
-
from vivarium_public_health.disease.transition import TransitionString
|
26
|
+
from vivarium_public_health.disease.transition import RateTransition, TransitionString
|
25
27
|
|
26
28
|
|
27
29
|
class DiseaseModel(Machine):
|
@@ -118,6 +120,18 @@ class DiseaseModel(Machine):
|
|
118
120
|
required_resources=["age", "sex"],
|
119
121
|
)
|
120
122
|
|
123
|
+
def on_post_setup(self, event: Event) -> None:
|
124
|
+
conversion_types = set()
|
125
|
+
for state in self.states:
|
126
|
+
for transition in state.transition_set.transitions:
|
127
|
+
if isinstance(transition, RateTransition):
|
128
|
+
conversion_types.add(transition.rate_conversion_type)
|
129
|
+
if len(conversion_types) > 1:
|
130
|
+
raise ConfigurationError(
|
131
|
+
"All transitions in a disease model must have the same rate conversion type."
|
132
|
+
f" Found: {conversion_types}."
|
133
|
+
)
|
134
|
+
|
121
135
|
def on_initialize_simulants(self, pop_data: SimulantData) -> None:
|
122
136
|
"""Initialize the simulants in the population.
|
123
137
|
|
@@ -48,6 +48,7 @@ class RateTransition(Transition):
|
|
48
48
|
"data_sources": {
|
49
49
|
"transition_rate": self._rate_source,
|
50
50
|
},
|
51
|
+
"rate_conversion_type": "linear",
|
51
52
|
},
|
52
53
|
}
|
53
54
|
|
@@ -143,6 +144,7 @@ class RateTransition(Transition):
|
|
143
144
|
component=self,
|
144
145
|
required_resources=lookup_columns + ["alive", self.joint_paf],
|
145
146
|
)
|
147
|
+
self.rate_conversion_type = self.configuration["rate_conversion_type"]
|
146
148
|
|
147
149
|
#################
|
148
150
|
# Setup methods #
|
@@ -184,7 +186,12 @@ class RateTransition(Transition):
|
|
184
186
|
##################
|
185
187
|
|
186
188
|
def _probability(self, index: pd.Index) -> pd.Series:
|
187
|
-
return pd.Series(
|
189
|
+
return pd.Series(
|
190
|
+
rate_to_probability(
|
191
|
+
self.transition_rate(index),
|
192
|
+
rate_conversion_type=self.rate_conversion_type,
|
193
|
+
)
|
194
|
+
)
|
188
195
|
|
189
196
|
|
190
197
|
class ProportionTransition(Transition):
|
@@ -561,22 +561,24 @@ def get_live_births_per_year(builder):
|
|
561
561
|
|
562
562
|
|
563
563
|
def rescale_final_age_bin(builder, population_data):
|
564
|
-
|
565
|
-
if
|
566
|
-
population_data = population_data.loc[
|
567
|
-
|
564
|
+
untracking_age = builder.configuration.population.to_dict().get("untracking_age", None)
|
565
|
+
if untracking_age:
|
566
|
+
population_data = population_data.loc[
|
567
|
+
population_data["age_start"] < untracking_age
|
568
|
+
].copy()
|
569
|
+
cut_bin_idx = untracking_age <= population_data["age_end"]
|
568
570
|
cut_age_start = population_data.loc[cut_bin_idx, "age_start"]
|
569
571
|
cut_age_end = population_data.loc[cut_bin_idx, "age_end"]
|
570
|
-
population_data.loc[cut_bin_idx, "value"] *= (
|
572
|
+
population_data.loc[cut_bin_idx, "value"] *= (untracking_age - cut_age_start) / (
|
571
573
|
cut_age_end - cut_age_start
|
572
574
|
)
|
573
|
-
population_data.loc[cut_bin_idx, "age_end"] =
|
575
|
+
population_data.loc[cut_bin_idx, "age_end"] = untracking_age
|
574
576
|
return population_data
|
575
577
|
|
576
578
|
|
577
579
|
def validate_crude_birth_rate_data(builder, data_year_max):
|
578
|
-
|
579
|
-
if
|
580
|
+
untracking_age = builder.configuration.population.to_dict().get("untracking_age", None)
|
581
|
+
if untracking_age and builder.configuration.population.age_end != untracking_age:
|
580
582
|
raise ValueError(
|
581
583
|
"If you specify an exit age, the initial population age end must be the same "
|
582
584
|
"for the crude birth rate calculation to work."
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: vivarium_public_health
|
3
|
-
Version: 4.0
|
3
|
+
Version: 4.1.0
|
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.
|
29
|
+
Requires-Dist: vivarium>=3.4.0
|
30
30
|
Requires-Dist: layered_config_tree>=1.0.1
|
31
31
|
Requires-Dist: loguru
|
32
32
|
Requires-Dist: numpy<2.0.0
|
@@ -1,6 +1,9 @@
|
|
1
|
+
from unittest.mock import patch
|
2
|
+
|
1
3
|
import numpy as np
|
2
4
|
import pandas as pd
|
3
5
|
import pytest
|
6
|
+
from layered_config_tree import ConfigurationError, LayeredConfigTree
|
4
7
|
from vivarium import Component, InteractiveContext
|
5
8
|
from vivarium.framework.state_machine import Transition
|
6
9
|
from vivarium.framework.utilities import from_yearly
|
@@ -554,3 +557,101 @@ def test_artifact_transition_keys(mocker, disease):
|
|
554
557
|
# check remission rate
|
555
558
|
remissive_transition = with_condition.add_rate_transition(healthy)
|
556
559
|
assert remissive_transition._rate_source == f"cause.{cause}.remission_rate"
|
560
|
+
|
561
|
+
|
562
|
+
@pytest.mark.parametrize("rate_conversion_type", ["linear", "exponential"])
|
563
|
+
def test_transition_rate_to_probability_configuration(
|
564
|
+
base_config: LayeredConfigTree,
|
565
|
+
base_plugins: LayeredConfigTree,
|
566
|
+
disease: str,
|
567
|
+
rate_conversion_type: str,
|
568
|
+
):
|
569
|
+
"""
|
570
|
+
Test that the transition rate to probability configuration is set correctly.
|
571
|
+
"""
|
572
|
+
healthy = BaseDiseaseState("healthy")
|
573
|
+
sick = DiseaseState("sick")
|
574
|
+
key = "sequela.acute_myocardial_infarction_first_2_days.incidence_rate"
|
575
|
+
transition = RateTransition(
|
576
|
+
input_state=healthy,
|
577
|
+
output_state=sick,
|
578
|
+
get_data_functions={"incidence_rate": lambda builder, _: builder.data.load(key)},
|
579
|
+
)
|
580
|
+
healthy.transition_set.append(transition)
|
581
|
+
model = DiseaseModel(disease, initial_state=healthy, states=[healthy, sick])
|
582
|
+
|
583
|
+
base_config.update(
|
584
|
+
{
|
585
|
+
f"{transition.name}": {
|
586
|
+
"rate_conversion_type": rate_conversion_type,
|
587
|
+
}
|
588
|
+
}
|
589
|
+
)
|
590
|
+
|
591
|
+
# Sets the configuration
|
592
|
+
sim = InteractiveContext(
|
593
|
+
components=[TestPopulation(), model],
|
594
|
+
configuration=base_config,
|
595
|
+
plugin_configuration=base_plugins,
|
596
|
+
setup=True,
|
597
|
+
)
|
598
|
+
|
599
|
+
assert transition.rate_conversion_type == rate_conversion_type
|
600
|
+
with patch(
|
601
|
+
"vivarium_public_health.disease.transition.rate_to_probability", return_value=1.0
|
602
|
+
) as mock_rate_to_probability:
|
603
|
+
idx = pd.Index(list(range(10)))
|
604
|
+
transition._probability(idx)
|
605
|
+
|
606
|
+
mock_rate_to_probability.assert_called_once()
|
607
|
+
args, kwargs = mock_rate_to_probability.call_args
|
608
|
+
assert len(args) == 1
|
609
|
+
assert len(kwargs) == 1
|
610
|
+
assert args[0].index.equals(idx)
|
611
|
+
assert kwargs["rate_conversion_type"] == rate_conversion_type
|
612
|
+
|
613
|
+
|
614
|
+
def test_disease_model_rate_conversion_config_error(
|
615
|
+
base_config: LayeredConfigTree,
|
616
|
+
base_plugins: LayeredConfigTree,
|
617
|
+
disease: str,
|
618
|
+
):
|
619
|
+
"""
|
620
|
+
Test that the transition rate to probability configuration is set correctly.
|
621
|
+
"""
|
622
|
+
healthy = BaseDiseaseState("healthy")
|
623
|
+
sick = DiseaseState("sick")
|
624
|
+
key = "sequela.acute_myocardial_infarction_first_2_days.incidence_rate"
|
625
|
+
transition = RateTransition(
|
626
|
+
input_state=healthy,
|
627
|
+
output_state=sick,
|
628
|
+
get_data_functions={"incidence_rate": lambda builder, _: builder.data.load(key)},
|
629
|
+
)
|
630
|
+
another_transition = RateTransition(
|
631
|
+
input_state=sick,
|
632
|
+
output_state=healthy,
|
633
|
+
get_data_functions={"incidence_rate": lambda builder, _: builder.data.load(key)},
|
634
|
+
)
|
635
|
+
healthy.transition_set.append(transition)
|
636
|
+
sick.transition_set.append(another_transition)
|
637
|
+
model = DiseaseModel(disease, initial_state=healthy, states=[healthy, sick])
|
638
|
+
|
639
|
+
base_config.update(
|
640
|
+
{
|
641
|
+
f"{transition.name}": {
|
642
|
+
"rate_conversion_type": "linear",
|
643
|
+
},
|
644
|
+
f"{another_transition.name}": {
|
645
|
+
"rate_conversion_type": "exponential",
|
646
|
+
},
|
647
|
+
}
|
648
|
+
)
|
649
|
+
|
650
|
+
# Sets the configuration
|
651
|
+
with pytest.raises(ConfigurationError):
|
652
|
+
InteractiveContext(
|
653
|
+
components=[TestPopulation(), model],
|
654
|
+
configuration=base_config,
|
655
|
+
plugin_configuration=base_plugins,
|
656
|
+
setup=True,
|
657
|
+
)
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "4.0.1"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/.github/pull_request_template.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/_templates/layout.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/api_reference/index.rst
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/docs/source/tutorials/index.rst
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/src/vivarium_public_health/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/data/rr_interpolator.csv
RENAMED
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/disease/test_special_disease.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/population/test_mortality.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_disability.py
RENAMED
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_disease_observer.py
RENAMED
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/results/test_stratification.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/risks/test_distributions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vivarium_public_health-4.0.1 → vivarium_public_health-4.1.0}/tests/treatment/test_scale_up.py
RENAMED
File without changes
|
File without changes
|