Python Config Parser (Soporte de clave duplicada)

Así que recientemente comencé a escribir un analizador de configuración para un proyecto de Python en el que estoy trabajando. Inicialmente evité configparser y configobj, porque quería admitir un archivo de configuración como este:

key=value
key2=anothervalue

food=burger
food=hotdog
food=cake icecream

n resumen, este archivo de configuración se editará a través de la línea de comando a través de SSH a menudo. Por lo tanto, no quiero tabular o meticuloso sobre el espaciado (como YAML), pero también quiero evitar que las claves con múltiples valores (fácilmente 10 o más) estén alineadas en vi. Es por eso que me gustaría admitir claves duplicadas.

En mi mundo ideal, cuando le pido comida al objeto de configuración de Python, me devolvería una lista con ['hamburguesa', 'perrito caliente', 'pastel', 'helado']. Si no se definiera un valor de alimento, se vería en un archivo de configuración predeterminado y me daría esos / esos valores.

Ya he implementado el @ anteri

Sin embargo, mis problemas comenzaron cuando me di cuenta de que quería apoyar la preservación de los comentarios en línea y demás. La forma en que manejo la lectura y la escritura en los archivos de configuración es decodificar el archivo en un dict en la memoria, leer los valores del dict o escribir valores en el dict, y luego volcar ese dict nuevamente en un archivo. Esto no es realmente bueno para preservar el orden de las líneas y los comentarios y demás, y me está molestando muchísimo.

A) Parece que ConfigObj tiene todo lo que necesito excepto admitir claves duplicadas. En cambio, quiere que haga una lista será difícil editar manualmente en vi sobre ssh debido al ajuste de línea. ¿Puedo hacer configobj más ssh / vi amigable?

B) ¿Está mal mi solución homebrew? ¿Hay una mejor manera de leer / escribir / almacenar mis valores de configuración? ¿Hay alguna manera fácil de manejar el cambio de un valor clave en un archivo de configuración simplemente modificando esa línea y reescribiendo todo el archivo de configuración desde la memoria?

Respuestas a la pregunta(2)

Su respuesta a la pregunta