QuantumAttemptStatus

class lsst.pipe.base.QuantumAttemptStatus(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Enum summarizing an attempt to run a quantum.

Attributes Summary

BLOCKED

This quantum was not executed because an upstream quantum failed.

FAILED

Execution of the quantum failed.

LOGS_MISSING

Task metadata was written for this attempt but logs were not.

SUCCESSFUL

This quantum was successfully executed.

UNKNOWN

The status of this attempt is unknown.

Attributes Documentation

BLOCKED = 0

This quantum was not executed because an upstream quantum failed.

Upstream quanta with status UNKNOWN or FAILED are considered blockers; LOGS_MISSING is not.

FAILED = -1

Execution of the quantum failed.

This is always set if the task metadata dataset was not written but logs were, as is the case when a Python exception is caught and handled by the execution system. It may also be set in cases where logs were not written either, but other information was available (e.g. from higher-level orchestration tooling) to mark it as a failure.

LOGS_MISSING = -2

Task metadata was written for this attempt but logs were not.

This is a rare condition that requires a hard failure (i.e. the kind that can prevent a finally block from running or I/O from being durable) at a very precise time.

SUCCESSFUL = 1

This quantum was successfully executed.

Quanta may be considered successful even if they do not write any outputs or shortcut early by raising NoWorkFound or one of its variants. They may even be considered successful if they raise AnnotatedPartialOutputsError if the executor is configured to treat that exception as a non-failure. See QuantumSuccessCaveats for details on how these “successes with caveats” are reported.

UNKNOWN = -3

The status of this attempt is unknown.

This usually means no logs or metadata were written, and it at least could not be determined whether the quantum was blocked by an upstream failure (if it was definitely blocked, BLOCKED is set instead).