33from ..utils import countries
44from ..utils .populations import country_population
55
6+ # put confirmed cases, deaths cases, recovered cases into one class
7+ # Inseated of using confirmed cases, deaths cases, recovered cases as attributes, we can use CaseNumbers class instance as attribute
8+ class CaseNumbers :
9+ def __init__ (self , confirmed = 0 , deaths = 0 , recovered = 0 ):
10+ self .confirmed = confirmed
11+ self .deaths = deaths
12+ self .recovered = recovered
13+
14+ class Locationinfo :
15+ def __init__ (self , id , country , province , coordinates ):
16+ self .id = id
17+ self .country = country .strip ()
18+ self .province = province .strip ()
19+ self .coordinates = coordinates
20+
21+
22+
623
724# pylint: disable=redefined-builtin,invalid-name
825class Location : # pylint: disable=too-many-instance-attributes
926 """
1027 A location in the world affected by the coronavirus.
1128 """
1229
30+ # Use instance of class CaseNumbers as attribute
1331 def __init__ (
14- self , id , country , province , coordinates , last_updated , confirmed , deaths , recovered ,
32+ self , locationinfo , last_updated , casenumbers
1533 ): # pylint: disable=too-many-arguments
1634 # General info.
17- self .id = id
18- self .country = country .strip ()
19- self .province = province .strip ()
20- self .coordinates = coordinates
35+ self .locationinfo = locationinfo
2136
2237 # Last update.
2338 self .last_updated = last_updated
2439
2540 # Statistics.
26- self .confirmed = confirmed
27- self .deaths = deaths
28- self .recovered = recovered
41+ self .casenumbers = casenumbers
2942
3043 @property
3144 def country_code (self ):
@@ -67,9 +80,9 @@ def serialize(self):
6780 "last_updated" : self .last_updated ,
6881 # Latest data (statistics).
6982 "latest" : {
70- "confirmed" : self .confirmed ,
71- "deaths" : self .deaths ,
72- "recovered" : self .recovered ,
83+ "confirmed" : self .casenumbers . confirmed ,
84+ "deaths" : self .casenumbers . deaths ,
85+ "recovered" : self .casenumbers . recovered ,
7386 },
7487 }
7588
@@ -80,7 +93,7 @@ class TimelinedLocation(Location):
8093 """
8194
8295 # pylint: disable=too-many-arguments
83- def __init__ (self , id , country , province , coordinates , last_updated , timelines ):
96+ def __init__ (self , id , country , province , coordinates , last_updated , timelines , casenumbers ):
8497 super ().__init__ (
8598 # General info.
8699 id ,
@@ -89,11 +102,15 @@ def __init__(self, id, country, province, coordinates, last_updated, timelines):
89102 coordinates ,
90103 last_updated ,
91104 # Statistics (retrieve latest from timelines).
92- confirmed = timelines .get ("confirmed" ).latest or 0 ,
93- deaths = timelines .get ("deaths" ).latest or 0 ,
94- recovered = timelines .get ("recovered" ).latest or 0 ,
105+ casenumbers
106+ #confirmed=timelines.get("confirmed").latest or 0,
107+ #deaths=timelines.get("deaths").latest or 0,
108+ #recovered=timelines.get("recovered").latest or 0,
95109 )
96-
110+ #set case numbers
111+ self .casenumbers .confirmed = timelines .get ("confirmed" ).latest or 0
112+ self .casenumbers .deaths = timelines .get ("deaths" ).latest or 0
113+ self .casenumbers .recovered = timelines .get ("recovered" ).latest or 0
97114 # Set timelines.
98115 self .timelines = timelines
99116
0 commit comments