ui.warning
The ui.warning function shows a warning message to the person running the program. Use it for a condition that deserves attention but does not stop the script; raise an error with fail() when the script cannot continue.
Usage
ui.warning(message)
Arguments
messageRequired. The text to show, as a string. It can be passed positionally or as
message = .... Passing a value of another type, such as an integer, fails with an argument error, so convert it withstr()first.
Returns
The return value is None. The message is a side effect and never becomes the step value.
Behavior
- The message is written to the status channel (stderr) with Atmos UI formatting: a themed
⚠marker followed by the text. Colors adapt to the terminal. - Standard output is reserved for data, so
ui.warningnever changes whatprintoroutputproduce, so a program's result can be piped or captured without status lines mixed in. - Inside
steps.paralleltasks, each message is written as one whole line and prefixed with the task name, such as[dev]. Lines from different tasks can arrive in any order but never interleave within a line. A group with a single task writes without a prefix. - Secrets that Atmos knows about are masked in the displayed text.
Examples
Show a message
replicas = 1
if replicas < 2:
ui.warning("Only " + str(replicas) + " replica configured; the service has no redundancy")
output = {"replicas": replicas}
⚠ Only 1 replica configured; the service has no redundancy
Use it in parallel tasks
def audit(stack):
ui.warning("Drift detected in " + stack)
steps.parallel(tasks = [steps.task(s, audit, args = [s]) for s in ["dev", "prod"]])
[dev] ⚠ Drift detected in dev
[prod] ⚠ Drift detected in prod
Errors
- Calling the function without a message, or with a message that is not a string, fails with an argument error that
names
ui.warning.
Related
ui.infoandui.successcover the other status levels.printwrites data to stdout, andlog.infowrites diagnostics to the Atmos log.- Atmos Automation Language and the script step