Длинные списки ConfigObj и значения по умолчанию - PullRequest
1 голос
/ 31 января 2012

У меня есть пара вопросов о 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 Ответ

2 голосов
/ 20 декабря 2012

Что касается второй части вопроса, я не уверен, что понимаю ее правильно, но если вы спрашиваете, как установить значение по умолчанию для значения, которого нет в файле конфигурации, тогда вы можете сделать

skip_pesky_pyc_paths = string_list(default=list())

в файле проверки. Затем, если skip_pesky_pyc_paths отсутствует в файле конфигурации, он вернет [].

Кроме того, вы говорите

Теперь я хотел бы сделать val = один, два, три

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

...