from typing import List as _List
from ..utils._get_functions import MetaFunction
__all__ = ["iterate_default"]
[docs]def iterate_default(stage: str, **kwargs) -> _List[MetaFunction]:
"""This returns the default list of 'advance_XXX' functions that
are called in sequence for each iteration of the model run.
This is the default iterator. It models every day as though
it is a working day.
Parameters
----------
stage: str
Which stage of the day is to be modelled
Returns
-------
funcs: List[MetaFunction]
The list of functions that will be called in sequence
"""
if stage == "initialise":
from ._setup_imports import setup_seed_wards
return [setup_seed_wards]
elif stage == "setup":
from ._advance_additional import advance_additional
return [advance_additional]
elif stage == "foi":
from ._advance_foi import advance_foi
from ._advance_recovery import advance_recovery
return [advance_foi, advance_recovery]
elif stage == "infect":
from ._iterate_weekday import iterate_weekday
return iterate_weekday(**kwargs)
else:
# we don't do anything at the "analyse" or "finalise" stages
return []