Шаг 3 из 5

С введением параметров необходимость объявлять два отдельных таска отпадает. Нам теперь достаточно иметь только один класс Task, куда передаются название файла и слово, которое необходимо записать в файл. Вот как выглядит пример такой задачи:

class Word2FileTask(luigi.Task):

    word = luigi.Parameter()
    filename = luigi.Parameter()

    def run(self):
        with self.output().open('w') as f:
            f.write(self.word)

    def output(self):
        return luigi.LocalTarget(self.filename)

Обратите внимание, что доступ к значениям параметров можно получить через self.<имя_параметра>, т.к. это обычные атрибуты класса.

Если возникает необходимость передачи параметров в коде, то выглядит это так:

Word2FileTask(word='hello', filename='hello.txt')

Комментарии