コード例 #1
0
def connect_parse_data(source: str) -> pd.Series:

    soup = get_soup(source)

    counters = soup.find_all(class_="elementor-counter-number")
    assert len(counters) == 4, "New counter in dashboard?"

    total_vaccinations = clean_count(counters[0]["data-to-value"])
    first_doses = clean_count(counters[1]["data-to-value"])
    second_doses = clean_count(counters[2]["data-to-value"])
    unique_doses = clean_count(counters[3]["data-to-value"])

    people_vaccinated = first_doses + unique_doses
    people_fully_vaccinated = second_doses + unique_doses

    date = localdate("America/Jamaica")

    return pd.Series(
        data={
            "total_vaccinations": total_vaccinations,
            "people_vaccinated": people_vaccinated,
            "people_fully_vaccinated": people_fully_vaccinated,
            "date": date,
        }
    )
コード例 #2
0
 def parse_data(self, soup):
     widgets = soup.find_all(class_="textwidget")
     total_vaccinations = clean_count(widgets[0].text)
     people_fully_vaccinated = clean_count(widgets[1].text)
     people_vaccinated = total_vaccinations - people_fully_vaccinated
     return pd.Series({
         "total_vaccinations": total_vaccinations,
         "people_vaccinated": people_vaccinated,
         "people_fully_vaccinated": people_fully_vaccinated,
         "date": localdate("Asia/Tbilisi"),
     })
コード例 #3
0
def connect_parse_data(source: str) -> pd.Series:

    soup = get_soup(source)
    people_vaccinated = soup.find_all(class_="repart-stlucia")[0].text
    people_vaccinated = clean_count(people_vaccinated)

    people_fully_vaccinated = soup.find_all(class_="repart-stlucia")[1].text
    people_fully_vaccinated = clean_count(people_fully_vaccinated)

    total_vaccinations = people_vaccinated + people_fully_vaccinated

    date = localdate("America/St_Lucia")

    data = {
        "total_vaccinations": total_vaccinations,
        "people_vaccinated": people_vaccinated,
        "people_fully_vaccinated": people_fully_vaccinated,
        "date": date,
    }
    return pd.Series(data=data)
コード例 #4
0
ファイル: bangladesh.py プロジェクト: Cahcn/covid-19-data
def read(source: str) -> pd.Series:

    soup = get_soup(source)

    people_vaccinated = clean_count(
        re.search(r"^[\d,]+", soup.find_all(class_="info-box-number")[2].text).group(0)
    )
    people_fully_vaccinated = clean_count(
        re.search(r"^[\d,]+", soup.find_all(class_="info-box-number")[3].text).group(0)
    )
    total_vaccinations = people_vaccinated + people_fully_vaccinated

    date = localdate("Asia/Dhaka")

    return pd.Series(
        data={
            "total_vaccinations": total_vaccinations,
            "people_vaccinated": people_vaccinated,
            "people_fully_vaccinated": people_fully_vaccinated,
            "date": date,
        }
    )
コード例 #5
0
ファイル: japan.py プロジェクト: Cahcn/covid-19-data
def connect_parse_data(source: str) -> pd.Series:

    soup = get_soup(source)

    df = pd.read_html(str(soup.find(class_="vaccination-count")))[0]
    assert df.shape == (3, 7)

    values = df.iloc[:, 2].values

    total_vaccinations = values[0]
    people_vaccinated = values[1]
    people_fully_vaccinated = values[2]
    assert total_vaccinations == people_vaccinated + people_fully_vaccinated

    date = soup.find(class_="aly_tx_center").text
    date = localdate("Asia/Tokyo")

    data = {
        "total_vaccinations": total_vaccinations,
        "people_vaccinated": people_vaccinated,
        "people_fully_vaccinated": people_fully_vaccinated,
        "date": date,
    }
    return pd.Series(data=data)
コード例 #6
0
ファイル: qatar.py プロジェクト: Cahcn/covid-19-data
def connect_parse_data(source: str) -> pd.Series:
    op = Options()
    op.add_argument("--headless")

    with webdriver.Chrome(options=op) as driver:
        driver.get(source)
        time.sleep(5)

        total_vaccinations = clean_count(driver.find_element_by_id("counter1").text)
        people_vaccinated_share = driver.find_element_by_id("counter4").text
        assert "One dose" in people_vaccinated_share
        people_fully_vaccinated_share = driver.find_element_by_id("counter4a").text
        assert "Two doses" in people_fully_vaccinated_share

    # This logic is only valid as long as Qatar *exclusively* uses 2-dose vaccines
    people_vaccinated_share = float(
        re.search(r"[\d.]+", people_vaccinated_share).group(0)
    )
    people_fully_vaccinated_share = float(
        re.search(r"[\d.]+", people_fully_vaccinated_share).group(0)
    )
    vaccinated_proportion = people_vaccinated_share / (
        people_vaccinated_share + people_fully_vaccinated_share
    )
    people_vaccinated = round(total_vaccinations * vaccinated_proportion)
    people_fully_vaccinated = total_vaccinations - people_vaccinated

    date = localdate("Asia/Qatar")

    data = {
        "total_vaccinations": total_vaccinations,
        "people_vaccinated": people_vaccinated,
        "people_fully_vaccinated": people_fully_vaccinated,
        "date": date,
    }
    return pd.Series(data=data)
コード例 #7
0
ファイル: suriname.py プロジェクト: Cahcn/covid-19-data
def set_date() -> str:
    return localdate("America/Paramaribo")
コード例 #8
0
ファイル: ecdc.py プロジェクト: Cahcn/covid-19-data
 def _weekday_to_date(self, d):
     new_date = clean_date(d + "+5", "%Y-W%W+%w")
     if new_date > localdate("Europe/London"):
         new_date = clean_date(d + "+2", "%Y-W%W+%w")
     return new_date
コード例 #9
0
ファイル: cayman_islands.py プロジェクト: Cahcn/covid-19-data
def set_date(ds: pd.Series) -> pd.Series:
    date = localdate("America/Cayman")
    return enrich_data(ds, "date", date)
コード例 #10
0
ファイル: india.py プロジェクト: Cahcn/covid-19-data
 def date_str(self):
     return localdate("Asia/Calcutta", force_today=True)
コード例 #11
0
def enrich_date(ds: pd.Series) -> pd.Series:
    return enrich_data(ds, "date", localdate("Europe/Luxembourg"))
コード例 #12
0
 def pipe_date(self, ds: pd.Series) -> pd.Series:
     date = localdate("Brazil/East")
     return enrich_data(ds, "date", date)
コード例 #13
0
ファイル: lebanon.py プロジェクト: Cahcn/covid-19-data
def format_date(ds: pd.Series) -> pd.Series:
    date = localdate("Asia/Beirut")
    return enrich_data(ds, "date", date)
コード例 #14
0
ファイル: kyrgyzstan.py プロジェクト: Cahcn/covid-19-data
 def pipe_date(self, ds: pd.Series) -> pd.Series:
     return enrich_data(ds, "date", localdate("Asia/Bishkek"))
コード例 #15
0
ファイル: isle_of_man.py プロジェクト: Cahcn/covid-19-data
def format_date(ds: pd.Series) -> pd.Series:
    date = localdate("Europe/Isle_of_Man")
    return enrich_data(ds, "date", date)
コード例 #16
0
 def pipe_date(self, ds: pd.Series) -> pd.Series:
     date = localdate("Africa/Casablanca")
     return enrich_data(ds, "date", date)
コード例 #17
0
ファイル: curacao.py プロジェクト: Cahcn/covid-19-data
def enrich_date(ds: pd.Series) -> pd.Series:
    date_str = localdate("America/Curacao")
    return enrich_data(ds, "date", date_str)
コード例 #18
0
def get_date() -> str:
    return localdate("Europe/Helsinki")
コード例 #19
0
def enrich_date(ds: pd.Series) -> pd.Series:
    date = localdate("Europe/Sofia")
    return enrich_data(ds, "date", date)
コード例 #20
0
ファイル: south_africa.py プロジェクト: Cahcn/covid-19-data
 def _parse_data(self, soup: BeautifulSoup) -> pd.Series:
     return pd.Series(
         data={
             "date": localdate("Africa/Johannesburg"),
             "total_vaccinations": self._parse_total_vaccinations(soup),
         })
コード例 #21
0
ファイル: aruba.py プロジェクト: Cahcn/covid-19-data
def enrich_date(ds: pd.Series) -> pd.Series:
    date = localdate("America/Aruba")
    return enrich_data(ds, "date", date)
コード例 #22
0
ファイル: moldova.py プロジェクト: Cahcn/covid-19-data
def format_date(ds: pd.Series) -> pd.Series:
    date = localdate("Europe/Chisinau")
    return enrich_data(ds, "date", date)
コード例 #23
0
ファイル: indonesia.py プロジェクト: Cahcn/covid-19-data
def enrich_date(ds: pd.Series) -> pd.Series:
    return enrich_data(ds, "date", localdate("Asia/Jakarta", force_today=True))
コード例 #24
0
ファイル: faeroe_islands.py プロジェクト: Cahcn/covid-19-data
 def pipe_format_date(self, ds: pd.Series) -> pd.Series:
     date = localdate("Atlantic/Faeroe")
     return enrich_data(ds, "date", date)
コード例 #25
0
ファイル: argentina.py プロジェクト: Cahcn/covid-19-data
def format_date(ds: pd.Series) -> pd.Series:
    date = localdate("America/Argentina/Buenos_Aires", 8)
    return enrich_data(ds, "date", date)
コード例 #26
0
ファイル: jordan.py プロジェクト: Cahcn/covid-19-data
 def pipe_date(self, ds: pd.Series) -> pd.Series:
     date = localdate("Asia/Amman")
     return enrich_data(ds, "date", date)