Il file di configurazione corrente è il seguente:
mainwindow.title = 'test'
mainwindow.position.x = 100
mainwindow.position.y = 200
mainwindow.button.label = 'apply'
mainwindow.button.size.x = 100
mainwindow.button.size.y = 30
logger.datarate = 100
logger.enable = True
logger.filename = './test.log'
Questo viene letto con python in un dizionario annidato:
{
'mainwindow':{
'button':{
'label': {'value':'apply'},
...
},
'logger':{
datarate: {'value': 100},
enable: {'value': True},
filename: {'value': './test.log'}
},
...
}
C'è un modo migliore per farlo? L'idea è di ottenere un tipo di comportamento XML ed evitare XML il più a lungo possibile. Si presume che l'utente finale sia quasi totalmente analfabeta dal computer e utilizza fondamentalmente il blocco note e il copia-incolla. Quindi il tipo standard "header + variables" di python è considerato troppo difficile.
L'utente fittizio modifica il file di configurazione, i programmatori in grado di gestire i dizionari. Il dizionario nidificato è scelto per una facile suddivisione (il logger non ha bisogno o non può nemmeno avere / modifica parametri mainwindow).