Toggle Light / Dark / Auto color theme
Toggle table of contents sidebar
Source code for cowidev.testing.incremental.new_zealand
import pandas as pd
from cowidev.utils.web.scraping import get_soup , request_text
from cowidev.utils.clean import extract_clean_date
from cowidev.testing.utils.incremental import increment
[docs]
class NewZealand :
location = "New Zealand"
units = "tests performed"
source_label = "Ministry of Health"
source_url = "https://www.health.govt.nz/our-work/diseases-and-conditions/covid-19-novel-coronavirus/covid-19-data-and-statistics/covid-19-testing-data"
notes = ""
[docs]
def read ( self ):
return {
"count" : self . _parse_metric (),
"date" : self . _parse_date (),
}
[docs]
def _parse_metric ( self ):
text = request_text ( self . source_url , mode = "raw" )
table = pd . read_html ( text , index_col = 0 )[ 1 ]
count = int ( table . loc [ "All COVID-19 viral tests administered*" ])
return count
[docs]
def _parse_date ( self ):
soup = get_soup ( self . source_url )
date_raw = soup . select_one ( ".pane-content .georgia-italic" ) . text
dt_raw = extract_clean_date ( date_raw , regex = "( \\ d+ \\ w+ 202 \\ d)" , date_format = " %d %B %Y" )
return dt_raw
[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 ():
NewZealand () . export ()