Еще одним вариантом реализации условной логики в DAG является оператор короткого замыкания ShortCircuitOperator или его декорированная версия @task.short_circuit. Этот оператор принимает функцию Python, которая возвращает True или False. В случае возврата True выполнение DAG продолжается, а при возврате False все нижестоящие задачи пропускаются. Этот оператор полезен, если некоторые задачи в DAG должны запускаться только изредка. Например, DAG запускается ежедневно, но его отдельные задачи выполняются только по воскресеньям. Или в системе машинного обучения, надо запускать задачи публикации ML-модели, когда достигается определенная точность обучения. Таким образом, ShortCircuitOperator используется для прекращения выполнения последующих задач на основе условий. Если условие не выполнено, задачи, идущие после ShortCircuitOperator, будут пропущены. Это полезно, когда нужно полностью остановить выполнение последующих задач, если условие не выполнено, или когда выполнение всего поддерева задач зависит от результатов выполнения одного условия. Это происходит, когда ShortCircuitOperator настроен на игнорирование триггерных правил для нижестоящих задач, т.е. параметр ignore_downstream_trigger_rules установлен в значение True. Если задать для этого параметра значение False, будут пропущены только прямые нижестоящие задачи, но те, которые идут после них. Пример того, как это работает мы разбирали здесь.