Chaves únicas do ConfigParser do Python por seção

Eu li a parte deos documentos e viu que oConfigParser retorna uma lista de pares de chave / valor para as opções em uma seção. Imaginei que as chaves não precisavam ser exclusivas em uma seção, caso contrário, o analisador retornaria um mapeamento. Eu projetei meu esquema de arquivo de configuração em torno dessa suposição, e infelizmente percebi que esse não é o caso:

>>> from ConfigParser import ConfigParser
>>> from StringIO import StringIO
>>> fh = StringIO("""
... [Some Section]
... spam: eggs
... spam: ham
... """)
>>> parser = ConfigParser()
>>> parser.readfp(fh)
>>> print parser.items('Some Section')
[('spam', 'ham')]

Depois voltei e encontrei a parte dos documentos que eudevemos tenho lido:

As seções são normalmente armazenadas em um dicionário interno. Um tipo de dicionário alternativo pode ser passado para o construtor ConfigParser. Por exemplo, se um tipo de dicionário for aprovado e classificar suas chaves, as seções serão classificadas no write-back, assim como as chaves em cada seção.

Para manter meu esquema de arquivo de configuração existente (do qual realmente gosto agora;), estou pensando em passar um objeto parecido com mapeamento, como mencionado acima, que acumula valores em vez de suborná-los. Existe uma maneira mais simples de evitar o colapso de chave / valor que estou perdendo? Em vez de fazer um adaptador maluco (isso pode quebrar seConfigParserimplementação), devo apenas escrever uma variante doConfigParser em si?

Sinto que esse pode ser um daqueles momentos em que estou vendo apenas as soluções difíceis.

[Editar:] Aqui está um exemplo mais preciso de como eu gostaria de usar a mesma chave várias vezes:

[Ignored Paths]
ignore-extension: .swp
ignore-filename: tags
ignore-directory: bin

Não gosto da sintaxe da lista delimitada por vírgulas, porque é difícil para os olhos quando você a escala em muitos valores; por exemplo, uma lista delimitada por vírgula de cinquenta extensões não seria particularmente legível.

questionAnswers(2)

yourAnswerToTheQuestion