Workflow configuration specifications

Workflow configuration specifications#

Below is the default configuration specifications for the workflow. You extended or modify these specifications by extending woom with supplying user specifications and user validator functions.

[app] # like the vapp/vconf/expid of vortex
name=string(default=None) # your application name, like "croco"
conf=string(default=None) # the configuration name of your application, like "manga"
exp=string(default=None) # the experiment name of your configuration, like "assim_2023"

[cycles]
begin_date=datetime(default=None) # first date
end_date=datetime(default=None) # last date
round=string(default=None) # to round dates
freq=string(default=None) # splitting frequency for cycles
ncycles=integer(min=0,default=0)  # number of cycles
indep=boolean(default=False) # are cycles indepedant from one another?
as_intervals=boolean(default=True) # interpret cycles as a series of ncycles intervals or ncycles+1 dates?
horizon=timedelta(default=None) # forecast horizon: when as_intervals=False, sets end_date = begin_date + horizon

[ensemble]
size=integer(min=0,default=None) # size of the ensemble
skip=pages(default=None)
label=string(default=member) # label to perform the substitution of member indices also used to set env variable prefixed with WOOM_
tasks=force_list(default=None) # tasks that are distributed across members

    [[iters]]
    __many__=force_list() # iterate also over these values when iterating overs members

[params]

    [[hosts]]
        [[[__many__]]] # host specific parameters like data paths

    [[tasks]] # task specific parameters
        [[[__many__]]]

[env_vars]
__many__=string

[groups]
__many__=force_list # list of sequential tasks

[stages]
dry_run=boolean(default=False)
update=boolean(default=False)
sentinel_check_interval=integer(default=10)
skip=force_list(default=list()) # task names to skip at runtime (not submitted, kept in tree)

    [[prolog]] # sequences before looping on cycles
    __many__=force_list # list of parallel tasks or groups

    [[cycles]] # cycle sequences
    __many__=force_list # list of parallel tasks or groups

    [[epilog]] # sequences after looping on cycles
    __many__=force_list # list of parallel tasks or groups