def test_code_function(self): assert mundi.code("Brazil") == "BR" assert mundi.code("brazil") == "BR" assert mundi.code("BR") == "BR" assert mundi.code("br") == "BR" assert mundi.code("BR-DF") == "BR-DF" assert mundi.code("BR/Distrito Federal") == "BR-DF" assert mundi.code("Brazil/Distrito Federal") == "BR-DF" assert mundi.code("brazil/distrito federal") == "BR-DF" assert mundi.code("Brazil/Brasília") == "BR-5300108"
def region_input(default: str, *, advanced=False, text=False, where=st, **kwargs) -> Region: """ Select region or sub-region based on mundi code. """ st = where kwargs["where"] = where default = mundi.code(default) if text or advanced and st.checkbox(_("Advanced selection"), value=False): try: code = st.text_input(_("Select mundi region"), value=default) return mundi.region(code) except LookupError: st.error(_("Region not found!")) return mundi.region(default) region = mundi.region(default) if region.id == "BR": return _br_region_input(**kwargs) elif len(default) == 2: return _from_sub_regions(region, _("Location"), where=where) else: raise NotImplementedError(f"Cannot select {default!r}")
def epidemic_curve(region, api="auto", extra=False, **kwargs): """ Universal interface to all epidemic curve loaders. Always return a dataframe with ["cases", "deaths"] columns for the given region. Some API's may offer additional columns such as "recovered", "test" etc. """ code = mundi.code(region) fn = EPIDEMIC_CURVES_APIS[api] data = fn(code, **kwargs) return data if extra else data[["cases", "deaths"]]
def loader(package: ModRef, db_name, idx) -> Tuple[pd.DataFrame, bool]: """ Load distribution from package. Return a tuple of (Data, is_row). The boolean "is_row" tells the returned data concerns a collection of items or a single row in the database. """ db = database(package, db_name + ".pkl.gz") if isinstance(idx, (pd.DataFrame, pd.Series)): idx = idx.index elif isinstance(idx, str): idx = mundi.code(idx) df, _ = loader(package, db_name, [idx]) return df.iloc[0], True # Try to get from index reindex = db.reindex(idx) return reindex, False