Source code for emod_api.demographics.fertility_distribution_old
from typing import List
from emod_api.demographics.Updateable import Updateable
[docs]class FertilityDistributionOld(Updateable):
def __init__(self,
axis_names: List[str] = None,
axis_scale_factors: List[float] = None,
axis_units=None,
num_distribution_axes=None,
num_population_axes=None,
num_population_groups=None,
population_groups=None,
result_scale_factor=None,
result_units=None,
result_values=None):
"""
https://docs.idmod.org/projects/emod-generic/en/latest/parameter-demographics.html#complex-distributions
Args:
axis_names:
axis_scale_factors:
axis_units:
population_groups:
result_scale_factor:
result_units:
result_values:
"""
super().__init__()
self.axis_names = axis_names
self.axis_scale_factors = axis_scale_factors
self.axis_units = axis_units
self._num_distribution_axes = num_distribution_axes
self._num_population_axes = num_population_axes
self._num_population_groups = num_population_groups
self.population_groups = population_groups
self.result_scale_factor = result_scale_factor
self.result_units = result_units
self.result_values = result_values
@property
def num_distribution_axes(self):
import warnings
warnings.warn(
f"{__class__}: num_distribution_axes (NumDistributionAxes) is not interpreted by EMOD and may be removed",
DeprecationWarning, stacklevel=2)
return self._num_distribution_axes
@num_distribution_axes.setter
def num_distribution_axes(self, value):
import warnings
warnings.warn(
f"{__class__}: num_distribution_axes (NumDistributionAxes) is not interpreted by EMOD and may be removed",
DeprecationWarning, stacklevel=2)
self._num_distribution_axes = value
@property
def num_population_axes(self):
import warnings
warnings.warn(
f"{__class__}: num_population_axes (NumPopulationAxes) is not interpreted by EMOD and may be removed",
DeprecationWarning, stacklevel=2)
return self._num_population_axes
@num_population_axes.setter
def num_population_axes(self, value):
import warnings
warnings.warn(
f"{__class__}: num_population_axes (NumPopulationAxes) is not interpreted by EMOD and may be removed",
DeprecationWarning, stacklevel=2)
self._num_population_axes = value
@property
def num_population_groups(self):
import warnings
warnings.warn(
f"{__class__}: num_population_groups (NumPopulationGroups) is not interpreted by EMOD and may be removed",
DeprecationWarning, stacklevel=2)
return self._num_population_groups
@num_population_groups.setter
def num_population_groups(self, value):
import warnings
warnings.warn(
f"{__class__}: num_population_groups (NumPopulationGroups) is not interpreted by EMOD and may be removed",
DeprecationWarning, stacklevel=2)
self._num_population_groups = value
[docs] def to_dict(self) -> dict:
fertility_distribution = self.parameter_dict
if self.axis_names is not None:
fertility_distribution.update({"AxisNames": self.axis_names})
if self.axis_scale_factors is not None:
fertility_distribution.update({"AxisScaleFactors": self.axis_scale_factors})
if self.axis_units is not None:
fertility_distribution.update({"AxisUnits": self.axis_units})
if self._num_distribution_axes is not None:
fertility_distribution.update({"NumDistributionAxes": self._num_distribution_axes})
if self._num_population_groups is not None:
fertility_distribution.update({"NumPopulationGroups": self._num_population_groups})
if self.population_groups is not None:
fertility_distribution.update({"PopulationGroups": self.population_groups})
if self.result_scale_factor is not None:
fertility_distribution.update({"ResultScaleFactor": self.result_scale_factor})
if self.result_units is not None:
fertility_distribution.update({"ResultUnits": self.result_units})
if self.result_values is not None:
fertility_distribution.update({"ResultValues": self.result_values})
return fertility_distribution
[docs] def from_dict(self, fertility_distribution: dict):
if fertility_distribution:
self.axis_names = fertility_distribution.get("AxisNames")
self.axis_scale_factors = fertility_distribution.get("AxisScaleFactors")
self.axis_units = fertility_distribution.get("AxisUnits")
self._num_distribution_axes = fertility_distribution.get("NumDistributionAxes")
self._num_population_groups = fertility_distribution.get("NumPopulationGroups")
self.population_groups = fertility_distribution.get("PopulationGroups")
self.result_scale_factor = fertility_distribution.get("ResultScaleFactor")
self.result_units = fertility_distribution.get("ResultUnits")
self.result_values = fertility_distribution.get("ResultValues")
return self