Step 6 of 8

Parameter

Из названия сущности можно догадаться для чего она предназначена 😉 Класс Parameter предназначен для возможности динамически передавать параметры в задачи (Task) как из командной строки так и в runtime. В luigi существует большое количество заготовленных параметров под все случаи жизни:

  • Parameter. Базовый класс для всех других параметров. Интерпретирует переданное значение как строку.
  • DateParameter. Принимает строку в формате YYYY-MM-DD и конвертирует в объект datetime.date.
  • IntParameter. Конвертирует переданное значение в целое число (int)
  • TaskParameter. Интересный параметр, который принимает в качестве значение luigi Task. Удобно для построения динамических зависимостей в runtime.

Про остальные доступные параметры можно почитать в исходном коде. В ходе практических примеров мы неоднократно будем использовать различные классы Parameter.

Parameter определяются на уровне описания задачи в наследнике Task (как атрибуты класса):

class DownloadTaxiTripTask(luigi.Task):
    year = luigi.IntParameter()
    month = luigi.IntParameter()
...

А в командной строке передача значений параметрам выглядит следующим образом:

python -m luigi --module tasks.DownloadTaxiTripTask --year 2019 --month 12

Comments