Луиджи: Есть ли способ использовать расширенную интерполяцию, как в configparser? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть файл конфигурации luigi:

[Common]
dir: /some/path

[MyTask]
task_parameter: ${Common:dir}/other/folders/

Но когда я запускаю задачу luigi с путем к конфигурации, я вижу, что task_parameter == "${Common:dir}/other/folders/", а не "/some/path/other/folders/"

Я что-то не так делаю? Можно ли использовать LuigiConfigParser таким образом?

Я использую python2 .7 и luigi == 2.7.1.

1 Ответ

0 голосов
/ 20 февраля 2020

Нет, вы не можете выполнять расширенную интерполяцию. Интерполяция определяется Shell * c, а конфигурации анализируются внутри Python land. Кроме того, помните, что все параметры должны быть сериализуемыми, поэтому Luigi / Python должен был бы перепрыгнуть через несколько довольно странных обручей для этого.

Однако, это довольно легко расширить до того, что вам нужно. Вместо указания task_parameter вы можете указать, скажем, task_parameter_query и использовать строку в качестве основы для запроса при разрешении назначения параметра. Похоже, вы просто пытаетесь получить переменную среды здесь, так что вы можете просто использовать task_parameter в качестве строкового шаблона и затем ввести значение, вызвав os.getenv.

...