Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 36 additions & 16 deletions COVID19Py/covid19.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Dict, List
from typing
import Dict, List
import requests
import json

Expand Down Expand Up @@ -49,16 +50,6 @@ def __init__(self, url="https://covid-tracker-us.herokuapp.com", data_source='jh
raise ValueError("Invalid data source. Expected one of: %s" % self._valid_data_sources)
self.data_source = data_source

def _update(self, timelines):
latest = self.getLatest()
locations = self.getLocations(timelines)
if self.latestData:
self.previousData = self.latestData
self.latestData = {
"latest": latest,
"locations": locations
}

def _getSources(self):
response = requests.get(self.url + "/v2/sources")
response.raise_for_status()
Expand All @@ -71,6 +62,26 @@ def _request(self, endpoint, params=None):
response.raise_for_status()
return response.json()

##########################################################################
class updates:

def __init__(self, latestData, previousData, timelines, request):
self.latestData = latestData
self.previousData = previousData
self.timelines = timelines
self.request = request

def _update(self, timelines):
latest = self.getLatest()
getlocation = Locatio_based_updates.getLocations
locations = self.getlocation(timelines)
if self.latestData:
self.previousData = self.latestData
self.latestData = {
"latest": latest,
"locations": locations
}

def getAll(self, timelines=False):
self._update(timelines)
return self.latestData
Expand All @@ -79,9 +90,9 @@ def getLatestChanges(self):
changes = None
if self.previousData:
changes = {
"confirmed": self.latestData["latest"]["confirmed"] - self.latestData["latest"]["confirmed"],
"deaths": self.latestData["latest"]["deaths"] - self.latestData["latest"]["deaths"],
"recovered": self.latestData["latest"]["recovered"] - self.latestData["latest"]["recovered"],
"confirmed": self.latestData["latest"]["confirmed"] - self.previousData["latest"]["confirmed"],
"deaths": self.latestData["latest"]["deaths"] - self.previousData["latest"]["deaths"],
"recovered": self.latestData["latest"]["recovered"] - self.previousData["latest"]["recovered"],
}
else:
changes = {
Expand All @@ -95,9 +106,18 @@ def getLatest(self) -> List[Dict[str, int]]:
"""
:return: The latest amount of total confirmed cases, deaths, and recoveries.
"""
data = self._request("/v2/latest")
data = self._request("/v2/latest")
return data["latest"]


###############################################################################################

class Locatio_based_updates:

def __init__(self, timelines=False, request):
self.request = request
self.timelines = timelines

def getLocations(self, timelines=False, rank_by: str = None) -> List[Dict]:
"""
Gets all locations affected by COVID-19, as well as latest case data.
Expand Down Expand Up @@ -155,4 +175,4 @@ def getLocationById(self, country_id: int):
:return: A dictionary with case information for the specified location.
"""
data = self._request("/v2/locations/" + str(country_id))
return data["location"]
return data["location"]
1 change: 1 addition & 0 deletions text.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
new changes