ecflow.RepeatDate

class ecflow.RepeatDate

Bases: pybind11_object

Allows a node to be repeated using a yyyymmdd format

A node can only have one repeat. The repeat name can be referenced in trigger expressions. The trigger expression referencing a RepeatDate will use date arithmetic Here (/suite/family:YMD + 1) uses date arithmetic only, the result is still an integer

trigger /suite/family:YMD + 1 > 20190101

Constructor:

RepeatDate(variable,start,end,delta)
   string variable:     The name of the repeat. The current date can referenced in
                        in trigger expressions using the variable name
   int start:           Start date, must have format: yyyymmdd
   int end:             End date, must have format: yyyymmdd
   int delta<optional>: default = 1, Always in days. The increment used to update the date

Exception:

  • Throws a RuntimeError if start/end are not valid dates

Usage:

rep = RepeatDate('YMD', 20050130, 20050203 )
rep = RepeatDate('YMD', 20050130, 20050203, 2)
t = Task('t1',
         RepeatDate('YMD', 20050130, 20050203 ))

Accessor methods:

current_index() -> int
   Zero-based position of the current date in the sequence.
   Computed using calendar-day (Julian-day) arithmetic,
   so it is correct even when the sequence crosses a month or year boundary.
   Returns 0 at construction / after reset.

current_value() -> int
   The current instant as an integer in yyyymmdd format.
RepeatDate.current_index(self: ecflow.RepeatDate) int

Return the zero-based index of the current date position. Uses calendar-day (Julian-day) arithmetic so the result is correct even for sequences that cross month or year boundaries.

RepeatDate.current_value(self: ecflow.RepeatDate) object

Return the current date as an integer in yyyymmdd format.

RepeatDate.end(self: ecflow.RepeatDate) int

Return the end date as an integer in yyyymmdd format

RepeatDate.name(self: ecflow.RepeatDate) str

Return the name of the repeat.

RepeatDate.start(self: ecflow.RepeatDate) int

Return the start date as an integer in yyyymmdd format

RepeatDate.step(self: ecflow.RepeatDate) int

Return the step increment. This is used to update the repeat, until end date is reached