Воздушный поток: пропустить строку перед оператором битового сдвига
Можно ли разрывать строки между оператором bitfshift при настройке зависимостей задач в DAG?
В моей группе DAG 10 задач, и все они должны выполняться последовательно, без распараллеливания.
Я хотел бы связать их в своем коде вертикально, как показано ниже:
task_1 \
>> task_2 \
>> task_3 \
>> task_n \
Вместо горизонтального:
task_1 >> task_2 >> task_3 >> task_n
Я попробовал \
характер, но мне это не удалось.
Спасибо
2 ответа
Насколько мне известно, в Python есть два способа сделать это. Первый - это обратная косая черта, которую вы уже пробовали, а вторая - круглые скобки. В вашем случае это будет выглядеть так:
foo = (task_1 >> task_2 >> task_3 >> task_n)
PEP8 о максимальной длине строки говорит:
Предпочтительный способ обертывания длинных строк - использование подразумеваемого продолжения строки Python внутри скобок, скобок и фигурных скобок. Длинные строки можно разбить на несколько строк, заключив выражения в круглые скобки. Их следует использовать вместо использования обратной косой черты для продолжения строки.
При разрыве строки помните, что ваш бинарный оператор (в данном случае >>) всегда ставится на новую строку перед положением. Это делает его более читаемым, например
foo = variable1 +
variableThatIsVeryLong -
var *
varAverage
vs.
foo = variable1
+ variableThatIsVeryLong
- var
* varAverage
Таким образом, читателю сразу становится понятно, какой оператор используется.
Одна из возможных причин, по которой обратная косая черта не работает, может быть из-за пробела сразу после нее.
Вы можете использовать функцию цепочки изairflow.utils.helpers
связать линейные зависимости.
Пример:
from airflow.utils.helpers import chain
tasks = [op1, op2, op3, op4, op5]
chain(*tasks)
эквивалентно:
op1 >> op2 >> op3 >> op4 >> op5
Подробности: https://airflow.apache.org/docs/stable/concepts.html