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
Exemple #5
0
 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
Exemple #6
0
    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}
Exemple #9
0
    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
Exemple #10
0
    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
Exemple #11
0
    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
Exemple #12
0
    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
Exemple #13
0
    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