Validation de fichier de conf en python

Validation de fichier de conf en python - Python - Programmation

Marsh Posté le 16-04-2014 à 20:49:53    

Bonjour,
Je recherche en python une lib ou une méthode simple pour valider un fichier de conf par rapport à un template modèle contenant la syntaxe, les blocs de conf attendu, des expressions régulières, etc...
Généralement j'utilise jinja2 pour faire l'inverse, générer des confs à partir d'un template, mais je n'ai pas vu qu'il était possible de faire l'inverse avec.
Les fichiers de confs vont généralement être du type suivant si ça peut aider.


keyword {
  truc {
    machin <expression régulière>;
  }
  abla {
    foobar {
      ablablablabl [ app1 app2 app3 ];
    }
  }
}


Je voudrais pouvoir définir réellement le template comme je veux.

 

En sortie le top serait :
1. de savoir si l'input est valide avec le modèle de référence
2. savoir où il manque des trucs
3. pouvoir déclencher des actions quand on détecte une différence avec le modèle.

 

Si ça peut aider, je pourrais relativement facilement transformer le fichier input en xml, mais je préfèrais rester dans le format natif.

 

Avez vous des recommandations/idées pour ça ?

 

Petit complément, je récupèrerais mon input via paramikoe.


Message édité par o'gure le 16-04-2014 à 20:50:42

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 16-04-2014 à 20:49:53   

Reply

Marsh Posté le 17-04-2014 à 15:56:08    

Disclaimer : je fais pas de Python :o
 
Ce que tu cherches c'est un parser.
 
Si ton fichier de conf est d'un format connu (XML, YAML...), tu utilises un parser existant, tu auras juste (éventuellement) à valider les values selon tes critères.
 
Si ton fichier de conf suit un format spécifique, un truc que tu as toi même défini, t'es bon pour écrire ton parser, la grammaire qui va avec. Cadeau : https://wiki.python.org/moin/LanguageParsing
 
Si seules les values changent, mais que la structure est toujours identique, tu peux faire un diff avec ton template, mais c'est crado :o

Reply

Marsh Posté le 18-04-2014 à 13:57:06    

LeRiton a écrit :

Disclaimer : je fais pas de Python :o

 

Ce que tu cherches c'est un parser.


J'ai pas envie d'en développer, trop lourd pour l'intéret.

LeRiton a écrit :


Si ton fichier de conf est d'un format connu (XML, YAML...), tu utilises un parser existant, tu auras juste (éventuellement) à valider les values selon tes critères.


Non, ce n'est pas un format connu.

LeRiton a écrit :


Si ton fichier de conf suit un format spécifique, un truc que tu as toi même défini, t'es bon pour écrire ton parser, la grammaire qui va avec. Cadeau : https://wiki.python.org/moin/LanguageParsing


Je vais regarder, merci

 
LeRiton a écrit :


Si seules les values changent, mais que la structure est toujours identique, tu peux faire un diff avec ton template, mais c'est crado :o


C'est une solution, mais justement certaines valeurs changent et je voudrais un diff avec des expressions régulières en fait :D


Message édité par o'gure le 18-04-2014 à 13:57:38

---------------
Relax. Take a deep breath !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed