Skip to content

Commit 01dac01

Browse files
committed
add latest cases data class
1 parent 1c7e4ae commit 01dac01

File tree

3 files changed

+32
-14
lines changed

3 files changed

+32
-14
lines changed

app/latest.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""app.latest.py"""
2+
3+
4+
class Latest:
5+
"""
6+
A position on earth using decimal coordinates (latitude and longitude).
7+
"""
8+
9+
def __init__(self, confirmed, deaths, recovered):
10+
self.confirmed = confirmed
11+
self.deaths = deaths
12+
self.recovered = recovered
13+
14+
def serialize(self):
15+
"""
16+
Serializes the latest data into a dict.
17+
18+
:returns: The serialized latest confirmed deaths and recovered cases
19+
:rtype: dict
20+
"""
21+
return {"confirmed": self.confirmed, "deaths": self.deaths, "recovered": self.recovered}
22+
23+
def __str__(self):
24+
return "confirmed: %s, deaths: %s, recovered: %s" % (self.confirmed, self.deaths, self.recovered)

app/location/__init__.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Location: # pylint: disable=too-many-instance-attributes
1111
"""
1212

1313
def __init__(
14-
self, id, country, province, coordinates, last_updated, confirmed, deaths, recovered,
14+
self, id, country, province, coordinates, last_updated, latest
1515
): # pylint: disable=too-many-arguments
1616
# General info.
1717
self.id = id
@@ -23,9 +23,7 @@ def __init__(
2323
self.last_updated = last_updated
2424

2525
# Statistics.
26-
self.confirmed = confirmed
27-
self.deaths = deaths
28-
self.recovered = recovered
26+
self.latest
2927

3028
@property
3129
def country_code(self):
@@ -66,11 +64,7 @@ def serialize(self):
6664
# Last updated.
6765
"last_updated": self.last_updated,
6866
# Latest data (statistics).
69-
"latest": {
70-
"confirmed": self.confirmed,
71-
"deaths": self.deaths,
72-
"recovered": self.recovered,
73-
},
67+
"latest": self.latest.serialize(),,
7468
}
7569

7670

app/services/location/jhu.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,26 +182,26 @@ async def get_locations():
182182
# Last update.
183183
datetime.utcnow().isoformat() + "Z",
184184
# Timelines (parse dates as ISO).
185-
{
186-
"confirmed": Timeline(
185+
Latest(
186+
confirmed = Timeline(
187187
timeline={
188188
datetime.strptime(date, "%m/%d/%y").isoformat() + "Z": amount
189189
for date, amount in timelines["confirmed"].items()
190190
}
191191
),
192-
"deaths": Timeline(
192+
deaths = Timeline(
193193
timeline={
194194
datetime.strptime(date, "%m/%d/%y").isoformat() + "Z": amount
195195
for date, amount in timelines["deaths"].items()
196196
}
197197
),
198-
"recovered": Timeline(
198+
recovered = Timeline(
199199
timeline={
200200
datetime.strptime(date, "%m/%d/%y").isoformat() + "Z": amount
201201
for date, amount in timelines["recovered"].items()
202202
}
203203
),
204-
},
204+
)
205205
)
206206
)
207207
LOGGER.info(f"{data_id} Data normalized")

0 commit comments

Comments
 (0)