ReferenceControlArcStandard libraryranges

ranges

Look up ranges.create and ranges.end, which mark a period of time from an Arc automation.

The ranges module creates and ends ranges while an automation runs. Import it with import ranges. Each function works in a flow and in a function body. When a call fails, Synnax shows a warning, gives an empty key, and the automation keeps running. For worked examples, see create ranges in Arc.

Each new trigger runs both functions, whatever the value. To run one only when a condition is true, use =>. With no upstream trigger, a function in a stage runs once each time the stage starts.

create

Creates a range that starts now and has no end. The Console shows it as in progress.

namestr Required

The name of the range.

parentstr = ""

The key of the parent range. Empty gives a top-level range.

colorstr = ""

A hex color such as "#3bc454", or rgb(r, g, b) or rgba(r, g, b, a). Line plots show only ranges that have a color.

  • Output -> the key of the new range, as a str.
  • Function form -> ranges.create(name, parent, color) str. parent and color are optional.

The compiler checks a literal color and rejects a value that is not a color.

import ranges

func start_test() str {
    return ranges.create("Hotfire", "", "#3bc454")
}

end

Sets the end of a range to now.

keystr Required

The key of the range to end.

  • Output -> the key of the range, as a str.
  • Function form -> ranges.end(key) str.

In a flow, key is a literal, a variable, or an expression, never a channel. A channel gives the error input value for 'key' cannot be a channel. To end a range that the automation created, keep its key in a variable:

import ranges

sequence test {
    key := ranges.create("Hotfire", "", "#3bc454")
    stage run {
        stop_cmd == 1 => next
    }
    ranges.end(key=key)
}

start_cmd == 1 => test