Длинные списки и значения по умолчанию в 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 = один, два, три

Но на самом деле это работает нормально. Я только что проверил это. Это правда, что размещение отдельных значений списка в отдельных строках не работает.

Другие вопросы по тегам