Длинные списки и значения по умолчанию в ConfigObj
У меня есть пара вопросов о configobj, которые я с удовольствием пытаюсь использовать для этого проекта.
Первый вопрос: как мне составить очень длинный список вещей? Предположим, я объявил в спецификации файла.
val = string_list
Теперь я хотел бы сделать val = один, два, три
но это не разрешено, а также
val = one, \
two, \
three
не работает, есть ли способ избежать написать все в одной строке?
Второй вопрос: как избежать двойного объявления значения по умолчанию?
Например, предположим, у меня есть эта спецификация:
skip_pesky_pyc_paths = string_list
Я считал само собой разумеющимся (псевдокод вперед)
conf = ConfigObj(spec=myspec)
conf['skip_pesky_pyc_paths'] == []
но это не тот случай, если он не объявлен в файле conf, он просто не находит ключ? Есть ли волшебная опция, позволяющая создать ключ, если он не объявлен в спецификации?
Альтернативой может быть использование YAML вместо этого, но для проверки ConfigObj выглядит лучше, насколько я вижу.
1 ответ
Что касается второй части вопроса, я не уверен, что я правильно понимаю, но если вы спрашиваете, как установить значение по умолчанию для значения, которого нет в файле конфигурации, то вы можете сделать
skip_pesky_pyc_paths = string_list(default=list())
в файле проверки. Тогда если skip_pesky_pyc_paths
нет в файле конфигурации, он вернется []
,
Также вы говорите
Теперь я хотел бы сделать val = один, два, три
Но на самом деле это работает нормально. Я только что проверил это. Это правда, что размещение отдельных значений списка в отдельных строках не работает.