Skip to content

Event records writer

DeathsRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
class DeathsRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="deaths",
            int_names=["location_ids", "dead_person_ids"],
            float_names=[],
            str_names=["location_specs"],
        )

    def accumulate(self, location_spec, location_id, dead_person_id):
        """

        Args:
            location_spec: 
            location_id: 
            dead_person_id: 

        """
        self.location_specs.append(location_spec)
        self.location_ids.append(location_id)
        self.dead_person_ids.append(dead_person_id)

accumulate(location_spec, location_id, dead_person_id)

Parameters:

Name Type Description Default
location_spec
required
location_id
required
dead_person_id
required
Source code in june/records/event_records_writer.py
197
198
199
200
201
202
203
204
205
206
207
208
def accumulate(self, location_spec, location_id, dead_person_id):
    """

    Args:
        location_spec: 
        location_id: 
        dead_person_id: 

    """
    self.location_specs.append(location_spec)
    self.location_ids.append(location_id)
    self.dead_person_ids.append(dead_person_id)

DischargesRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
class DischargesRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="discharges",
            int_names=["hospital_ids", "patient_ids"],
            float_names=[],
            str_names=[],
        )

    def accumulate(self, hospital_id, patient_id):
        """

        Args:
            hospital_id: 
            patient_id: 

        """
        self.hospital_ids.append(hospital_id)
        self.patient_ids.append(patient_id)

accumulate(hospital_id, patient_id)

Parameters:

Name Type Description Default
hospital_id
required
patient_id
required
Source code in june/records/event_records_writer.py
174
175
176
177
178
179
180
181
182
183
def accumulate(self, hospital_id, patient_id):
    """

    Args:
        hospital_id: 
        patient_id: 

    """
    self.hospital_ids.append(hospital_id)
    self.patient_ids.append(patient_id)

EventRecord

Source code in june/records/event_records_writer.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
class EventRecord:
    """ """
    def __init__(self, hdf5_filename, table_name, int_names, float_names, str_names):
        self.filename = hdf5_filename
        self.table_name = table_name
        self.int_names = int_names
        self.float_names = float_names
        self.str_names = str_names
        self.attributes = int_names + float_names + str_names
        for attribute in self.attributes:
            setattr(self, attribute, [])
        self._create_table(int_names, float_names, str_names)

    def _create_table(self, int_names, float_names, str_names):
        """

        Args:
            int_names: 
            float_names: 
            str_names: 

        """
        with tables.open_file(self.filename, mode="a") as file:
            table_description = _get_description_for_event(
                int_names=int_names,
                float_names=float_names,
                str_names=str_names,
                timestamp=True,
            )
            self.table = file.create_table(
                file.root, self.table_name, table_description
            )

    @property
    def number_of_events(self):
        """ """
        return len(getattr(self, self.attributes[0]))

    def accumulate(self):
        """ """
        pass

    def record(self, hdf5_file, timestamp: str):
        """

        Args:
            hdf5_file: 
            timestamp (str): 

        """
        data = np.rec.fromarrays(
            [
                np.array(
                    [timestamp.strftime("%Y-%m-%d")] * self.number_of_events,
                    dtype="S10",
                )
            ]
            + [np.array(getattr(self, name), dtype=np.int32) for name in self.int_names]
            + [
                np.array(getattr(self, name), dtype=np.float6432)
                for name in self.float_names
            ]
            + [np.array(getattr(self, name), dtype="S20") for name in self.str_names]
        )

        table = getattr(hdf5_file.root, self.table_name)
        table.append(data)
        table.flush()
        for attribute in self.attributes:
            setattr(self, attribute, [])

number_of_events property

accumulate()

Source code in june/records/event_records_writer.py
44
45
46
def accumulate(self):
    """ """
    pass

record(hdf5_file, timestamp)

Parameters:

Name Type Description Default
hdf5_file
required
timestamp str
required
Source code in june/records/event_records_writer.py
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
def record(self, hdf5_file, timestamp: str):
    """

    Args:
        hdf5_file: 
        timestamp (str): 

    """
    data = np.rec.fromarrays(
        [
            np.array(
                [timestamp.strftime("%Y-%m-%d")] * self.number_of_events,
                dtype="S10",
            )
        ]
        + [np.array(getattr(self, name), dtype=np.int32) for name in self.int_names]
        + [
            np.array(getattr(self, name), dtype=np.float6432)
            for name in self.float_names
        ]
        + [np.array(getattr(self, name), dtype="S20") for name in self.str_names]
    )

    table = getattr(hdf5_file.root, self.table_name)
    table.append(data)
    table.flush()
    for attribute in self.attributes:
        setattr(self, attribute, [])

HospitalAdmissionsRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
class HospitalAdmissionsRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="hospital_admissions",
            int_names=["hospital_ids", "patient_ids"],
            float_names=[],
            str_names=[],
        )

    def accumulate(self, hospital_id, patient_id):
        """

        Args:
            hospital_id: 
            patient_id: 

        """
        self.hospital_ids.append(hospital_id)
        self.patient_ids.append(patient_id)

accumulate(hospital_id, patient_id)

Parameters:

Name Type Description Default
hospital_id
required
patient_id
required
Source code in june/records/event_records_writer.py
128
129
130
131
132
133
134
135
136
137
def accumulate(self, hospital_id, patient_id):
    """

    Args:
        hospital_id: 
        patient_id: 

    """
    self.hospital_ids.append(hospital_id)
    self.patient_ids.append(patient_id)

ICUAdmissionsRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
class ICUAdmissionsRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="icu_admissions",
            int_names=["hospital_ids", "patient_ids"],
            float_names=[],
            str_names=[],
        )

    def accumulate(self, hospital_id, patient_id):
        """

        Args:
            hospital_id: 
            patient_id: 

        """
        self.hospital_ids.append(hospital_id)
        self.patient_ids.append(patient_id)

accumulate(hospital_id, patient_id)

Parameters:

Name Type Description Default
hospital_id
required
patient_id
required
Source code in june/records/event_records_writer.py
151
152
153
154
155
156
157
158
159
160
def accumulate(self, hospital_id, patient_id):
    """

    Args:
        hospital_id: 
        patient_id: 

    """
    self.hospital_ids.append(hospital_id)
    self.patient_ids.append(patient_id)

InfectionRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
class InfectionRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="infections",
            int_names=["location_ids", "infector_ids", "infected_ids", "infection_ids"],
            float_names=[],
            str_names=["location_specs", "region_names"]
        )

    def accumulate(
        self,
        location_spec,
        location_id,
        region_name,
        infector_ids,
        infected_ids,
        infection_ids,
    ):
        """

        Args:
            location_spec: 
            location_id: 
            region_name: 
            infector_ids: 
            infected_ids: 
            infection_ids: 

        """
        self.location_specs.extend([location_spec] * len(infected_ids))
        self.location_ids.extend([location_id] * len(infected_ids))
        self.region_names.extend([region_name] * len(infected_ids))
        self.infector_ids.extend(infector_ids)
        self.infected_ids.extend(infected_ids)
        self.infection_ids.extend(infection_ids)

accumulate(location_spec, location_id, region_name, infector_ids, infected_ids, infection_ids)

Parameters:

Name Type Description Default
location_spec
required
location_id
required
region_name
required
infector_ids
required
infected_ids
required
infection_ids
required
Source code in june/records/event_records_writer.py
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
def accumulate(
    self,
    location_spec,
    location_id,
    region_name,
    infector_ids,
    infected_ids,
    infection_ids,
):
    """

    Args:
        location_spec: 
        location_id: 
        region_name: 
        infector_ids: 
        infected_ids: 
        infection_ids: 

    """
    self.location_specs.extend([location_spec] * len(infected_ids))
    self.location_ids.extend([location_id] * len(infected_ids))
    self.region_names.extend([region_name] * len(infected_ids))
    self.infector_ids.extend(infector_ids)
    self.infected_ids.extend(infected_ids)
    self.infection_ids.extend(infection_ids)

RecoveriesRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
class RecoveriesRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="recoveries",
            int_names=["recovered_person_ids", "infection_ids"],
            float_names=[],
            str_names=[],
        )

    def accumulate(self, recovered_person_id, infection_id):
        """

        Args:
            recovered_person_id: 
            infection_id: 

        """
        self.recovered_person_ids.append(recovered_person_id)
        self.infection_ids.append(infection_id)

accumulate(recovered_person_id, infection_id)

Parameters:

Name Type Description Default
recovered_person_id
required
infection_id
required
Source code in june/records/event_records_writer.py
222
223
224
225
226
227
228
229
230
231
def accumulate(self, recovered_person_id, infection_id):
    """

    Args:
        recovered_person_id: 
        infection_id: 

    """
    self.recovered_person_ids.append(recovered_person_id)
    self.infection_ids.append(infection_id)

SymptomsRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
class SymptomsRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="symptoms",
            int_names=["infected_ids", "new_symptoms", "infection_ids"],
            float_names=[],
            str_names=[],
        )

    def accumulate(self, infected_id, symptoms, infection_id):
        """

        Args:
            infected_id: 
            symptoms: 
            infection_id: 

        """
        self.infected_ids.append(infected_id)
        self.new_symptoms.append(symptoms)
        self.infection_ids.append(infection_id)

accumulate(infected_id, symptoms, infection_id)

Parameters:

Name Type Description Default
infected_id
required
symptoms
required
infection_id
required
Source code in june/records/event_records_writer.py
245
246
247
248
249
250
251
252
253
254
255
256
def accumulate(self, infected_id, symptoms, infection_id):
    """

    Args:
        infected_id: 
        symptoms: 
        infection_id: 

    """
    self.infected_ids.append(infected_id)
    self.new_symptoms.append(symptoms)
    self.infection_ids.append(infection_id)

VaccinesRecord

Bases: EventRecord

Source code in june/records/event_records_writer.py
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
class VaccinesRecord(EventRecord):
    """ """
    def __init__(self, hdf5_filename):
        super().__init__(
            hdf5_filename=hdf5_filename,
            table_name="vaccines",
            int_names=["vaccinated_ids", "dose_numbers"],
            float_names=[],
            str_names=["vaccine_names"],
        )

    def accumulate(self, vaccinated_id, vaccine_name, dose_number):
        """

        Args:
            vaccinated_id: 
            vaccine_name: 
            dose_number: 

        """
        self.vaccinated_ids.append(vaccinated_id)
        self.vaccine_names.append(vaccine_name)
        self.dose_numbers.append(dose_number)

accumulate(vaccinated_id, vaccine_name, dose_number)

Parameters:

Name Type Description Default
vaccinated_id
required
vaccine_name
required
dose_number
required
Source code in june/records/event_records_writer.py
270
271
272
273
274
275
276
277
278
279
280
281
def accumulate(self, vaccinated_id, vaccine_name, dose_number):
    """

    Args:
        vaccinated_id: 
        vaccine_name: 
        dose_number: 

    """
    self.vaccinated_ids.append(vaccinated_id)
    self.vaccine_names.append(vaccine_name)
    self.dose_numbers.append(dose_number)