Source code for cowidev.testing.incremental.lebanon

import re

from cowidev.utils.web import get_soup
from cowidev.testing.utils.incremental import increment
from cowidev.utils.clean import clean_count, clean_date


[docs]class Lebanon: location = "Lebanon" units = "tests performed" source_label = "Lebanon Ministry of Health" source_url = "https://corona.ministryinfo.gov.lb/" notes = "" regex = {"date": r"([A-Za-z]+ \d+)"}
[docs] def read(self): soup = get_soup(self.source_url) count = self._parse_count(soup) date = self._parse_date(soup) return {"count": count, "date": date}
[docs] def _parse_count(self, soup: str) -> str: count = soup.find("h1", class_="s-counter3").text return clean_count(count)
[docs] def _parse_date(self, soup: str) -> str: date = soup.select(".last-update strong")[0].text date = re.search(self.regex["date"], date).group(0) return clean_date(f"2021{date}", "%Y%b %d")
[docs] def export(self): data = self.read() increment( count=data["count"], sheet_name=self.location, country=self.location, units=self.units, date=data["date"], source_url=self.source_url, source_label=self.source_label, )
[docs]def main(): Lebanon().export()