def get_active(self) -> ActiveModel: """ Summation of all actives """ self.df = get_data_daily_reports() # Get base data data = ActiveModel( active=int(self.df['Active'].sum()) ) return data
def get_recovered(self) -> RecoveredModel: """ Summation of all recovers """ self.df = get_data_daily_reports() # Get base data data = RecoveredModel( recovered=int(self.df['Recovered'].sum()) ) return data
def get_deaths(self) -> DeathsModel: """ Summation of all deaths """ self.df = get_data_daily_reports() # Get base data data = DeathsModel( deaths=int(self.df['Deaths'].sum()) ) return data
def get_confirmed(self) -> ConfirmedModel: """ Summation of all confirmed cases """ self.df = get_data_daily_reports() # Get base data data = ConfirmedModel( confirmed=int(self.df['Confirmed'].sum()) ) return data
def get_total(self) -> TotalModel: """ Summation of Confirmed, Deaths, Recovered, Active """ self.df = get_data_daily_reports() # Get base data data = TotalModel(confirmed=int(self.df['Confirmed'].sum()), deaths=int(self.df['Deaths'].sum()), recovered=int(self.df['Recovered'].sum()), active=int(self.df['Active'].sum())) return data
def get_total(self) -> Dict[str, Any]: """ Summation of Confirmed, Deaths, Recovered, Active """ self.df = get_data_daily_reports() # Get base data data = { 'confirmed': int(self.df['Confirmed'].sum()), 'deaths': int(self.df['Deaths'].sum()), 'recovered': int(self.df['Recovered'].sum()), 'active': int(self.df['Active'].sum()) } return data
def get_current(self) -> List[CurrentModel]: """ Current data from all locations (Lastest date) """ concerned_columns = ['Confirmed', 'Deaths', 'Recovered', 'Active'] self.df = get_data_daily_reports() # Get base data self.df_grp_by_country = self.df.groupby('Country_Region')[concerned_columns].sum() self.df_grp_by_country[concerned_columns] = self.df_grp_by_country[concerned_columns].astype(int) df_grp_by_country = self.df_grp_by_country.sort_values(by='Confirmed', ascending=False) df_grp_by_country = df_grp_by_country.reset_index() df_grp_by_country.columns = ['location', 'confirmed', 'deaths', 'recovered', 'active'] data = [CurrentModel(**v) for v in df_grp_by_country.to_dict('index').values()] return data
def __init__(self) -> None: """ Initiate DataFrames """ self.df = get_data_daily_reports() self.df_time_series = get_data_time_series() self.df_US_time_series = get_US_time_series() self.lookup_table = get_data_lookup_table() concerned_columns = ['Confirmed', 'Deaths', 'Recovered', 'Active'] self.df_grp_by_country = self.df.groupby( 'Country_Region')[concerned_columns].sum() self.df_grp_by_country[concerned_columns] = self.df_grp_by_country[ concerned_columns].astype(int) self.datetime = max(self.df['Last_Update'].tolist()) self.timestamp = datetime.strptime(self.datetime, '%Y-%m-%d %H:%M:%S').timestamp() self.scheme = {'data': None, 'dt': self.datetime, 'ts': self.timestamp}
def get_country(self, country_name: str) -> CountryModel: """ Get a country data from its name or ISO 2 """ concerned_columns = ['Confirmed', 'Deaths', 'Recovered', 'Active'] self.df = get_data_daily_reports() # Get base data self.df_grp_by_country = self.df.groupby( 'Country_Region')[concerned_columns].sum() self.df_grp_by_country[concerned_columns] = self.df_grp_by_country[ concerned_columns].astype(int) df_grp_by_country = self.df_grp_by_country.sort_values(by='Confirmed', ascending=False) df_grp_by_country = df_grp_by_country.reset_index() df_grp_by_country.columns = [ 'location', 'confirmed', 'deaths', 'recovered', 'active' ] all_country_data = [ CountryModel(**v) for v in df_grp_by_country.to_dict('index').values() ] # Check input if not isinstance(country_name, str) or not country_name.isalpha(): return {} # Search for a given country country_name = country_name.lower() country_name_from_code = self.lookup_table.get(country_name.upper(), '').lower() data = [ country_data for country_data in all_country_data if country_data.location.lower() in [country_name, country_name_from_code] ] data = data[0] if data else {} return data
def get_active(self) -> Dict[str, Any]: """ Summation of all actives """ self.df = get_data_daily_reports() # Get base data data = int(self.df['Active'].sum()) return data
def get_recovered(self) -> Dict[str, Any]: """ Summation of all recovers """ self.df = get_data_daily_reports() # Get base data data = int(self.df['Recovered'].sum()) return data
def get_deaths(self) -> Dict[str, Any]: """ Summation of all deaths """ self.df = get_data_daily_reports() # Get base data data = int(self.df['Deaths'].sum()) return data
def get_confirmed(self) -> Dict[str, Any]: """ Summation of all confirmed cases """ self.df = get_data_daily_reports() # Get base data data = int(self.df['Confirmed'].sum()) return data