Оговорка:
Если вы используете значения по умолчанию с ConfigParser, т. Е .:
config = ConfigParser.SafeConfigParser({'FOO_BAZ': 'bar'})
, а затем попытайтесь сделать синтаксический анализатор чувствительным к регистру, используя это:
config.optionxform = str
все ваши опции из конфигурационных файлов будут сохранены, но FOO_BAZ
будет преобразован в строчные.
Чтобы значения по умолчанию также сохранялись, используйте подклассы, как в @icedtrees answer:
class CaseConfigParser(ConfigParser.SafeConfigParser):
def optionxform(self, optionstr):
return optionstr
config = CaseConfigParser({'FOO_BAZ': 'bar'})
Теперь FOO_BAZ
сохранит его, и у вас не будет InterpolationMissingOptionError .