[docs]classLuxembourg(CountryTestBase):location:str="Luxembourg"units:str="tests performed"source_label:str="Luxembourg Ministry of Health"source_url_ref:str="https://msan.gouvernement.lu/fr/graphiques-evolution.html"rename_columns:dict={"Nombre de tests PCR effectués":"Cumulative total",'Nombre de personnes testées "positif"':"positive",}
[docs]defread(self)->pd.DataFrame:"""Read data from source"""table=self._get_relevant_table(self.source_url_ref)df=pd.read_html(table,header=0)[0].drop_duplicates(["Nombre de tests PCR effectués"])returndf
[docs]def_get_relevant_table(self,url:str)->element.Tag:"""Get the table with the relevant data"""soup=get_soup(url)tables=soup.find_all("table")table=[tablefortableintablesiftable.findChild("caption").text=="Tests COVID-19"][0]returnstr(table)
[docs]defpipe_date(self,df:pd.DataFrame)->pd.DataFrame:"""Convert date to datetime"""returndf.assign(Date=clean_date_series(df["Date"],"%d/%m/%Y"))
[docs]defpipeline(self,df:pd.DataFrame)->pd.DataFrame:"""Pipeline for data"""returndf.pipe(self.pipe_rename_columns).pipe(self.pipe_date).pipe(self.pipe_pr).pipe(self.pipe_metadata)
[docs]defexport(self):"""Export data to CSV"""df=self.read().pipe(self.pipeline)self.export_datafile(df,float_format="%.5f")