Воздушный поток: пропустить строку перед оператором битового сдвига

Можно ли разрывать строки между оператором 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

Другие вопросы по тегам