6

Per il programma python che sto scrivendo vorrei dare l'opportunità di configurarlo in tre modi diversi. Variabili d'ambiente, file di configurazione e argomenti della riga di comando.Quale ordine di lettura dei valori di configurazione?

Logicamente, penso che gli argomenti della riga di comando debbano sempre avere la massima priorità. Sono un po 'in dubbio se le variabili di ambiente debbano avere la precedenza sui file di configurazione? E sarà importante se i file di configurazione sono a livello di sistema, specifici dell'utente o dati come argomento sulla riga di comando?

(Si noti che la mia piattaforma è Unix/Linux)

risposta

15

Lo standard che so è primo sguardo per un parametro di riga di comando, se non trovato var, quindi file di configurazione locale, allora il file di configurazione globale dell'ambiente.

Quindi quando un pacchetto è installato da qualche parte. Avrà un file di configurazione predefinito. Questo può essere cambiato con un file di configurazione locale. Quale può essere sovrascritto con un parametro environ e quindi il parametro della riga di comando ha la precedenza più alta.

Se un file di configurazione viene dichiarato sulla riga di comando, il suo contenuto avrà la precedenza su environ params o su qualsiasi altro file di configurazione. Ma i parametri della riga di comando avranno la precedenza su di esso. Ma ricorda che il percorso di ricerca esiste ancora. Se il pacchetto sta cercando una var che cerca.

Command line. 
Config file thats name is declared on the command line. 
Environment vars 
Local config file (if exists) 
Global config file (if exists) 

Penso che molti compilatori della riga di comando e le Boost biblioteca di configurazione opere Pak in modo simile

+0

non so se il vostro ordine è dato ufficiale o sempre significativa, ma suona abbastanza buona per me:) +1 – Mecki

+0

Beh, potremmo sempre spendere un sacco di soldi e fare uno standard IEEE. N/a. Troppo tempo e fatica per una piccola ricompensa. Microsoft e Google e gli altri soliti sospetti avrebbero i loro mille e uno dei motivi per cui non possono conformarsi alla linea guida Mecki/King. – kingchris

+1

La posizione "file di configurazione sulla riga di comando" è discutibile. Dalla mia esperienza, in genere sostituisce i file di magazzino. –

Problemi correlati