"""Template classes for GBD entities
This code is automatically generated by gbd_mapping_generator/base_template_builder.py
Any manual changes will be lost.
"""
from typing import Union, Tuple
from .id import c_id, s_id, hs_id, me_id, cov_id, rei_id, scalar
[docs]class GbdRecord:
"""Base class for entities modeled in the GBD."""
__slots__ = ()
[docs] def to_dict(self):
out = {}
for item in self.__slots__:
attr = getattr(self, item)
if isinstance(attr, GbdRecord):
out[item] = attr.to_dict()
elif isinstance(attr, Tuple) and attr:
if isinstance(attr[0], GbdRecord):
out[item] = tuple(r.to_dict() for r in attr)
elif attr is not None:
out[item] = attr
else:
continue
return out
def __contains__(self, item):
return item in self.__slots__
def __getitem__(self, item):
if item in self:
return getattr(self, item)
else:
raise KeyError(item)
def __iter__(self):
for item in self.__slots__:
yield getattr(self, item)
def __eq__(self, other):
return all([getattr(self, item) == getattr(other, item) for item in self.__slots__
if not isinstance(getattr(self, item), GbdRecord)])
def __repr__(self):
out = f'{self.__class__.__name__}('
for i, slot in enumerate(self.__slots__):
attr = self[slot]
if attr is None:
continue
if i != 0:
out += ','
out += f'\n{slot}='
if isinstance(attr, tuple):
out += '['+', '.join([entity.name if hasattr(entity, "name") else entity for entity in attr]) + ']'
elif hasattr(attr, "name"):
out += attr.name
else:
out += repr(attr)
return out + ')'
[docs]class ModelableEntity(GbdRecord):
"""Container for general GBD ids and metadata."""
__slots__ = ('name', 'kind', 'gbd_id', )
def __init__(self,
name: str,
kind: str,
gbd_id: Union[c_id, s_id, hs_id, me_id, cov_id, rei_id, None], ):
super().__init__()
self.name = name
self.kind = kind
self.gbd_id = gbd_id
[docs]class Restrictions(GbdRecord):
"""Container for information about sub-populations the entity describes."""
__slots__ = ('male_only', 'female_only', 'yll_only', 'yld_only', 'yll_age_group_id_start',
'yll_age_group_id_end', 'yld_age_group_id_start', 'yld_age_group_id_end', )
def __init__(self,
male_only: bool,
female_only: bool,
yll_only: bool,
yld_only: bool,
yll_age_group_id_start: int = None,
yll_age_group_id_end: int = None,
yld_age_group_id_start: int = None,
yld_age_group_id_end: int = None, ):
super().__init__()
self.male_only = male_only
self.female_only = female_only
self.yll_only = yll_only
self.yld_only = yld_only
self.yll_age_group_id_start = yll_age_group_id_start
self.yll_age_group_id_end = yll_age_group_id_end
self.yld_age_group_id_start = yld_age_group_id_start
self.yld_age_group_id_end = yld_age_group_id_end
[docs]class Tmred(GbdRecord):
"""Container for theoretical minimum risk exposure distribution data."""
__slots__ = ('distribution', 'inverted', 'min', 'max', )
def __init__(self,
distribution: str,
inverted: bool,
min: scalar = None,
max: scalar = None, ):
super().__init__()
self.distribution = distribution
self.inverted = inverted
self.min = min
self.max = max
[docs]class Categories(GbdRecord):
"""Container for categorical risk exposure levels."""
__slots__ = ('cat1', 'cat2', 'cat3', 'cat4', 'cat5', 'cat6', 'cat7', 'cat8', 'cat9', 'cat10', 'cat11', 'cat12',
'cat13', 'cat14', 'cat15', 'cat16', 'cat17', 'cat18', 'cat19', 'cat20', 'cat21', 'cat22', 'cat23',
'cat24', 'cat25', 'cat26', 'cat27', 'cat28', 'cat29', 'cat30', 'cat31', 'cat32', 'cat33', 'cat34',
'cat35', 'cat36', 'cat37', 'cat38', 'cat39', 'cat40', 'cat41', 'cat42', 'cat43', 'cat44', 'cat45',
'cat46', 'cat47', 'cat48', 'cat49', 'cat50', 'cat51', 'cat52', 'cat53', 'cat54', 'cat55', 'cat56',
'cat57', 'cat58', 'cat59', 'cat60', 'cat61', 'cat62', 'cat63', 'cat64', 'cat65', 'cat66', 'cat67',
'cat68', 'cat69', 'cat70', 'cat71', 'cat72', 'cat73', 'cat74', 'cat75', 'cat76', 'cat77', 'cat78',
'cat79', 'cat80', 'cat81', 'cat82', 'cat83', 'cat84', 'cat85', 'cat86', 'cat87', 'cat88', 'cat89',
'cat90', 'cat91', 'cat92', 'cat93', 'cat94', 'cat95', 'cat96', 'cat97', 'cat98', 'cat99', 'cat100',
'cat101', 'cat102', 'cat103', 'cat104', 'cat105', 'cat106', 'cat107', 'cat108', 'cat109', 'cat110',
'cat111', 'cat112', 'cat113', 'cat114', 'cat115', 'cat116', 'cat117', 'cat118', 'cat119', 'cat120',
'cat121', 'cat122', 'cat123', 'cat124', 'cat125', 'cat126', 'cat127', 'cat128', 'cat129', 'cat130',
'cat131', 'cat132', 'cat133', 'cat134', 'cat135', 'cat136', 'cat137', 'cat138', 'cat139', 'cat140',
'cat141', 'cat142', 'cat143', 'cat144', 'cat145', 'cat146', 'cat147', 'cat148', 'cat149', )
def __init__(self,
cat1: str = None,
cat2: str = None,
cat3: str = None,
cat4: str = None,
cat5: str = None,
cat6: str = None,
cat7: str = None,
cat8: str = None,
cat9: str = None,
cat10: str = None,
cat11: str = None,
cat12: str = None,
cat13: str = None,
cat14: str = None,
cat15: str = None,
cat16: str = None,
cat17: str = None,
cat18: str = None,
cat19: str = None,
cat20: str = None,
cat21: str = None,
cat22: str = None,
cat23: str = None,
cat24: str = None,
cat25: str = None,
cat26: str = None,
cat27: str = None,
cat28: str = None,
cat29: str = None,
cat30: str = None,
cat31: str = None,
cat32: str = None,
cat33: str = None,
cat34: str = None,
cat35: str = None,
cat36: str = None,
cat37: str = None,
cat38: str = None,
cat39: str = None,
cat40: str = None,
cat41: str = None,
cat42: str = None,
cat43: str = None,
cat44: str = None,
cat45: str = None,
cat46: str = None,
cat47: str = None,
cat48: str = None,
cat49: str = None,
cat50: str = None,
cat51: str = None,
cat52: str = None,
cat53: str = None,
cat54: str = None,
cat55: str = None,
cat56: str = None,
cat57: str = None,
cat58: str = None,
cat59: str = None,
cat60: str = None,
cat61: str = None,
cat62: str = None,
cat63: str = None,
cat64: str = None,
cat65: str = None,
cat66: str = None,
cat67: str = None,
cat68: str = None,
cat69: str = None,
cat70: str = None,
cat71: str = None,
cat72: str = None,
cat73: str = None,
cat74: str = None,
cat75: str = None,
cat76: str = None,
cat77: str = None,
cat78: str = None,
cat79: str = None,
cat80: str = None,
cat81: str = None,
cat82: str = None,
cat83: str = None,
cat84: str = None,
cat85: str = None,
cat86: str = None,
cat87: str = None,
cat88: str = None,
cat89: str = None,
cat90: str = None,
cat91: str = None,
cat92: str = None,
cat93: str = None,
cat94: str = None,
cat95: str = None,
cat96: str = None,
cat97: str = None,
cat98: str = None,
cat99: str = None,
cat100: str = None,
cat101: str = None,
cat102: str = None,
cat103: str = None,
cat104: str = None,
cat105: str = None,
cat106: str = None,
cat107: str = None,
cat108: str = None,
cat109: str = None,
cat110: str = None,
cat111: str = None,
cat112: str = None,
cat113: str = None,
cat114: str = None,
cat115: str = None,
cat116: str = None,
cat117: str = None,
cat118: str = None,
cat119: str = None,
cat120: str = None,
cat121: str = None,
cat122: str = None,
cat123: str = None,
cat124: str = None,
cat125: str = None,
cat126: str = None,
cat127: str = None,
cat128: str = None,
cat129: str = None,
cat130: str = None,
cat131: str = None,
cat132: str = None,
cat133: str = None,
cat134: str = None,
cat135: str = None,
cat136: str = None,
cat137: str = None,
cat138: str = None,
cat139: str = None,
cat140: str = None,
cat141: str = None,
cat142: str = None,
cat143: str = None,
cat144: str = None,
cat145: str = None,
cat146: str = None,
cat147: str = None,
cat148: str = None,
cat149: str = None, ):
super().__init__()
self.cat1 = cat1
self.cat2 = cat2
self.cat3 = cat3
self.cat4 = cat4
self.cat5 = cat5
self.cat6 = cat6
self.cat7 = cat7
self.cat8 = cat8
self.cat9 = cat9
self.cat10 = cat10
self.cat11 = cat11
self.cat12 = cat12
self.cat13 = cat13
self.cat14 = cat14
self.cat15 = cat15
self.cat16 = cat16
self.cat17 = cat17
self.cat18 = cat18
self.cat19 = cat19
self.cat20 = cat20
self.cat21 = cat21
self.cat22 = cat22
self.cat23 = cat23
self.cat24 = cat24
self.cat25 = cat25
self.cat26 = cat26
self.cat27 = cat27
self.cat28 = cat28
self.cat29 = cat29
self.cat30 = cat30
self.cat31 = cat31
self.cat32 = cat32
self.cat33 = cat33
self.cat34 = cat34
self.cat35 = cat35
self.cat36 = cat36
self.cat37 = cat37
self.cat38 = cat38
self.cat39 = cat39
self.cat40 = cat40
self.cat41 = cat41
self.cat42 = cat42
self.cat43 = cat43
self.cat44 = cat44
self.cat45 = cat45
self.cat46 = cat46
self.cat47 = cat47
self.cat48 = cat48
self.cat49 = cat49
self.cat50 = cat50
self.cat51 = cat51
self.cat52 = cat52
self.cat53 = cat53
self.cat54 = cat54
self.cat55 = cat55
self.cat56 = cat56
self.cat57 = cat57
self.cat58 = cat58
self.cat59 = cat59
self.cat60 = cat60
self.cat61 = cat61
self.cat62 = cat62
self.cat63 = cat63
self.cat64 = cat64
self.cat65 = cat65
self.cat66 = cat66
self.cat67 = cat67
self.cat68 = cat68
self.cat69 = cat69
self.cat70 = cat70
self.cat71 = cat71
self.cat72 = cat72
self.cat73 = cat73
self.cat74 = cat74
self.cat75 = cat75
self.cat76 = cat76
self.cat77 = cat77
self.cat78 = cat78
self.cat79 = cat79
self.cat80 = cat80
self.cat81 = cat81
self.cat82 = cat82
self.cat83 = cat83
self.cat84 = cat84
self.cat85 = cat85
self.cat86 = cat86
self.cat87 = cat87
self.cat88 = cat88
self.cat89 = cat89
self.cat90 = cat90
self.cat91 = cat91
self.cat92 = cat92
self.cat93 = cat93
self.cat94 = cat94
self.cat95 = cat95
self.cat96 = cat96
self.cat97 = cat97
self.cat98 = cat98
self.cat99 = cat99
self.cat100 = cat100
self.cat101 = cat101
self.cat102 = cat102
self.cat103 = cat103
self.cat104 = cat104
self.cat105 = cat105
self.cat106 = cat106
self.cat107 = cat107
self.cat108 = cat108
self.cat109 = cat109
self.cat110 = cat110
self.cat111 = cat111
self.cat112 = cat112
self.cat113 = cat113
self.cat114 = cat114
self.cat115 = cat115
self.cat116 = cat116
self.cat117 = cat117
self.cat118 = cat118
self.cat119 = cat119
self.cat120 = cat120
self.cat121 = cat121
self.cat122 = cat122
self.cat123 = cat123
self.cat124 = cat124
self.cat125 = cat125
self.cat126 = cat126
self.cat127 = cat127
self.cat128 = cat128
self.cat129 = cat129
self.cat130 = cat130
self.cat131 = cat131
self.cat132 = cat132
self.cat133 = cat133
self.cat134 = cat134
self.cat135 = cat135
self.cat136 = cat136
self.cat137 = cat137
self.cat138 = cat138
self.cat139 = cat139
self.cat140 = cat140
self.cat141 = cat141
self.cat142 = cat142
self.cat143 = cat143
self.cat144 = cat144
self.cat145 = cat145
self.cat146 = cat146
self.cat147 = cat147
self.cat148 = cat148
self.cat149 = cat149