[docs]classNorway(CountryTestBase):location:str="Norway"units:str="people tested"source_label:str="Norwegian Institute of Public Health"source_url:str="https://www.fhi.no/api/chartdata/api/90789"source_url_ref:str=("https://www.fhi.no/en/id/infectious-diseases/coronavirus/daily-reports/daily-reports-COVID19")
[docs]defread(self)->pd.DataFrame:"""Reads data from source."""data=request_json(self.source_url)df=pd.DataFrame(data[1:],columns=data[0])returndf
[docs]defpipe_date(self,df:pd.DataFrame)->pd.DataFrame:"""Cleans date column"""returndf.assign(Date=clean_date_series(df["Date"],"%Y-%m-%d"))
[docs]defpipe_metrics(self,df:pd.DataFrame):"""Pipes metrics"""df=df.assign(**{"Daily change in cumulative total":df.Negative.apply(clean_count)+df.Positive.apply(clean_count)})returndf[df["Daily change in cumulative total"]>0].drop_duplicates(subset="Date",keep="last")
[docs]defpipeline(self,df:pd.DataFrame)->pd.DataFrame:"""pipeline for data"""return(df.pipe(self.pipe_date).pipe(self.pipe_metrics).pipe(self.pipe_pr).pipe(self.pipe_metadata).sort_values("Date"))
[docs]defexport(self):"""Exports data to csv"""df=self.read().pipe(self.pipeline)self.export_datafile(df)