Source code for emodpy_hiv.demographics.pair_formation_parameters

from typing import Dict, List

from emod_api.demographics.Updateable import Updateable

from emodpy_hiv.demographics.assortivity import Assortivity as AssortivityClass


[docs]class PairFormationParameters(Updateable): def __init__(self, Assortivity: AssortivityClass = None, Formation_Rate_Constant: float = None, Age_of_First_Bin_Edge_Female: int = None, Age_of_First_Bin_Edge_Male: int = None, Extra_Relational_Rate_Ratio_Female: int = None, Extra_Relational_Rate_Ratio_Male: int = None, Number_Age_Bins_Female: int = None, Number_Age_Bins_Male: int = None, Update_Period: float = None, Years_Between_Bin_Edges_Female: float = None, Years_Between_Bin_Edges_Male: float = None, Joint_Probabilities: List[List[float]] = None): """ https://docs.idmod.org/projects/emod-hiv/en/latest/parameter-demographics.html#pair-formation-parameters Args: Assortivity: Formation_Rate_Constant: Age_of_First_Bin_Edge_Female: Age_of_First_Bin_Edge_Male: Extra_Relational_Rate_Ratio_Female: Extra_Relational_Rate_Ratio_Male: Number_Age_Bins_Female: Number_Age_Bins_Male: Update_Period: Years_Between_Bin_Edges_Female: Years_Between_Bin_Edges_Male: Joint_Probabilities: """ super().__init__() self.Assortivity = Assortivity if Assortivity is not None else AssortivityClass() self.Formation_Rate_Constant = Formation_Rate_Constant self.Age_of_First_Bin_Edge_Female = Age_of_First_Bin_Edge_Female self.Age_of_First_Bin_Edge_Male = Age_of_First_Bin_Edge_Male self.Extra_Relational_Rate_Ratio_Female = Extra_Relational_Rate_Ratio_Female self.Extra_Relational_Rate_Ratio_Male = Extra_Relational_Rate_Ratio_Male self.Number_Age_Bins_Female = Number_Age_Bins_Female self.Number_Age_Bins_Male = Number_Age_Bins_Male self.Update_Period = Update_Period self.Years_Between_Bin_Edges_Female = Years_Between_Bin_Edges_Female self.Years_Between_Bin_Edges_Male = Years_Between_Bin_Edges_Male self.Joint_Probabilities = Joint_Probabilities
[docs] def to_dict(self) -> Dict: parameters = { 'Formation_Rate_Type': 'CONSTANT', } for var, value in vars(self).items(): parameters[var] = value.to_dict() if hasattr(value, 'to_dict') else value return parameters
[docs] @classmethod def from_dict(cls, d: Dict) -> '__class__': assortivity = d.get('Assortivity', None) assortivity = None if assortivity is None else AssortivityClass.from_dict(d=assortivity) return cls(Assortivity=assortivity, Formation_Rate_Constant=d.get('Formation_Rate_Constant', None), Age_of_First_Bin_Edge_Female=d.get('Age_of_First_Bin_Edge_Female', None), Age_of_First_Bin_Edge_Male=d.get('Age_of_First_Bin_Edge_Male', None), Extra_Relational_Rate_Ratio_Female=d.get('Extra_Relational_Rate_Ratio_Female', None), Extra_Relational_Rate_Ratio_Male=d.get('Extra_Relational_Rate_Ratio_Male', None), Number_Age_Bins_Female=d.get('Number_Age_Bins_Female', None), Number_Age_Bins_Male=d.get('Number_Age_Bins_Male', None), Update_Period=d.get('Update_Period', None), Years_Between_Bin_Edges_Female=d.get('Years_Between_Bin_Edges_Female', None), Years_Between_Bin_Edges_Male=d.get('Years_Between_Bin_Edges_Male', None), Joint_Probabilities=d.get('Joint_Probabilities', None))