Введение в Data Engineering: дата-пайплайны: Разбор конфигов Luigi / Прочие настройки
Luigi также поддерживает возможность задания кастомных настроек для ваших задач. Есть несколько вариантов.
Во-первых, если у вас есть задача и вы хотите менять настройки через конфигурационный файл luigi.cfg
, а не в коде, то задать настройки для конкретного таска можно следующим образом:
class CustomParamTask(luigi.Task):
message = luigi.Parameter()
def run(self):
print('The message is {}'.format(self.message))
и в luigi.cfg
:
[CustomParamTask]
message="Hello World"
Во-вторых, можно задать кастомную секцию с конфигурациями и использовать её между множеством разных задач. Для этого необходимо унаследоваться от класса luigi.Config
:
class mysection(luigi.Config):
host = luigi.Parameter()
port = luigi.IntParameter()
class ShowMySection(luigi.Task):
def run(self):
section = mysection()
print('Host is: {}\\nPort is: {}'.format(section.host, section.port))
а в файле luigi.cfg
это выглядит вот так:
[mysection]
host=localhost
port=1337