Analyse fichiers .conf (avec py, sans lex ni yacc) ??
8 réponses
kato fong
Bonjour à tous,
Voulant améliorer une application python en évitant de la configurer à
l'aide de vi à chaque lancement, je recherche comment faire un fichier
de config facilement lisible, éditable et analysable en python.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
kato fong
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Voulant améliorer une application python en évitant de la configurer à
l'aide de vi à chaque lancement, je recherche comment faire un fichier
de config facilement lisible, éditable et analysable en python.
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Format INI avec ConfigParser => http://docs.python.org/lib/module-ConfigParser.html
Format XML avec plein de bibliothèques
-- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
Bonjour à tous,
Voulant améliorer une application python en évitant de la configurer à
l'aide de vi à chaque lancement, je recherche comment faire un fichier
de config facilement lisible, éditable et analysable en python.
Format INI avec ConfigParser =>
http://docs.python.org/lib/module-ConfigParser.html
Format XML avec plein de bibliothèques
--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Format INI avec ConfigParser => http://docs.python.org/lib/module-ConfigParser.html
Format XML avec plein de bibliothèques
-- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
Laurent Pointal
Le Tue, 10 Jun 2008 17:30:36 +0200, Encolpe Degoute a écrit :
Bonjour à tous,
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Format INI avec ConfigParser => http://docs.python.org/lib/module-ConfigParser.html
Ou plus évolué, ConfigObj http://www.voidspace.org.uk/python/configobj.html
Format XML avec plein de bibliothèques L'auteur du post a écrit "facilement lisible" ;-)
Bon, si ça n'est QUE par le logiciel, ça va. Si ça doit être lu/modifié par des humains, c'est pas sympa.
+ Format JSON et binding Python http://www.json.org/
+ Format YAML et binding Python http://www.yaml.org/
+ Simple module Python avec des définitions de variables.
-- Laurent POINTAL -
Le Tue, 10 Jun 2008 17:30:36 +0200, Encolpe Degoute a écrit :
Bonjour à tous,
Voulant améliorer une application python en évitant de la configurer à
l'aide de vi à chaque lancement, je recherche comment faire un fichier
de config facilement lisible, éditable et analysable en python.
Format INI avec ConfigParser =>
http://docs.python.org/lib/module-ConfigParser.html
Ou plus évolué, ConfigObj
http://www.voidspace.org.uk/python/configobj.html
Format XML avec plein de bibliothèques
L'auteur du post a écrit "facilement lisible" ;-)
Bon, si ça n'est QUE par le logiciel, ça va.
Si ça doit être lu/modifié par des humains, c'est pas sympa.
+ Format JSON et binding Python
http://www.json.org/
+ Format YAML et binding Python
http://www.yaml.org/
+ Simple module Python avec des définitions de variables.
Le Tue, 10 Jun 2008 17:30:36 +0200, Encolpe Degoute a écrit :
Bonjour à tous,
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Format INI avec ConfigParser => http://docs.python.org/lib/module-ConfigParser.html
Ou plus évolué, ConfigObj http://www.voidspace.org.uk/python/configobj.html
Format XML avec plein de bibliothèques L'auteur du post a écrit "facilement lisible" ;-)
Bon, si ça n'est QUE par le logiciel, ça va. Si ça doit être lu/modifié par des humains, c'est pas sympa.
+ Format JSON et binding Python http://www.json.org/
+ Format YAML et binding Python http://www.yaml.org/
+ Simple module Python avec des définitions de variables.
-- Laurent POINTAL -
JBB
Bonjour à tous,
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Avez-vous des exemples, des pointeurs ?
D'avance merci
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf!
Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, dans lequel je met des choses du genre:
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
en plus je peut du code dans mon fichier de conf
rajouter un nouveau paramètre de conf prends environ 2 secondes.
après on peut renforcer le système, en créant une class Parametre on peut alors vérifier que tous les paramètres ont bien été saisis, ou que l'utilisateur n'en a pas saisi d'autre. le fichier de conf de vient: PARAM = Parametre() PARAM.param1 = "toto" PARAM.param3 = "toto" #ce parametre n'existe pas -> exception
bref on fait ce qu'on veut.
Bonjour à tous,
Voulant améliorer une application python en évitant de la configurer à
l'aide de vi à chaque lancement, je recherche comment faire un fichier
de config facilement lisible, éditable et analysable en python.
Avez-vous des exemples, des pointeurs ?
D'avance merci
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf!
Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py,
dans lequel je met des choses du genre:
dans mon code je met import conf.py
et j'ai tous les paramètres de conf.
le parser de mon fichier de conf est python.exe ;)
en plus je peut du code dans mon fichier de conf
rajouter un nouveau paramètre de conf prends environ 2 secondes.
après on peut renforcer le système, en créant une class Parametre
on peut alors vérifier que tous les paramètres ont bien été saisis, ou que l'utilisateur n'en a pas saisi d'autre.
le fichier de conf de vient:
PARAM = Parametre()
PARAM.param1 = "toto"
PARAM.param3 = "toto" #ce parametre n'existe pas -> exception
Voulant améliorer une application python en évitant de la configurer à l'aide de vi à chaque lancement, je recherche comment faire un fichier de config facilement lisible, éditable et analysable en python.
Avez-vous des exemples, des pointeurs ?
D'avance merci
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf!
Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, dans lequel je met des choses du genre:
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
en plus je peut du code dans mon fichier de conf
rajouter un nouveau paramètre de conf prends environ 2 secondes.
après on peut renforcer le système, en créant une class Parametre on peut alors vérifier que tous les paramètres ont bien été saisis, ou que l'utilisateur n'en a pas saisi d'autre. le fichier de conf de vient: PARAM = Parametre() PARAM.param1 = "toto" PARAM.param3 = "toto" #ce parametre n'existe pas -> exception
bref on fait ce qu'on veut.
kato fong
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf! Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, <snip/>
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
Oui, je comprends bien. Toutefois, dans le cas qui me préoccupe, j'ai deux menues objections:
1 - le fichier config peut être modifié par un admin/technicien qui ignore tout de python (ou qui trouve ça nul parce que perl-est-super (j'en ai déjà rencontré un))
2 - les fichiers config peuvent se trouver sous diverses versions et, surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom du fichier de config en paramètre de l'appli. Donc, dans ce dernier cas je ne sais pas comment faire proprement pour passer "dynamiquement" le nom du module conf.py. J'imagine qu'il faudrait juste que je passe un peu de temps à chercher ...
-- kato fong
Moi personnellement depuis que je fais du python je ne fais plus de
fichier de conf!
Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py,
<snip/>
dans mon code je met import conf.py
et j'ai tous les paramètres de conf.
le parser de mon fichier de conf est python.exe ;)
Oui, je comprends bien. Toutefois, dans le cas qui me préoccupe, j'ai
deux menues objections:
1 - le fichier config peut être modifié par un admin/technicien qui
ignore tout de python (ou qui trouve ça nul parce que perl-est-super
(j'en ai déjà rencontré un))
2 - les fichiers config peuvent se trouver sous diverses versions et,
surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom
du fichier de config en paramètre de l'appli.
Donc, dans ce dernier cas je ne sais pas comment faire proprement pour
passer "dynamiquement" le nom du module conf.py. J'imagine qu'il
faudrait juste que je passe un peu de temps à chercher ...
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf! Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, <snip/>
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
Oui, je comprends bien. Toutefois, dans le cas qui me préoccupe, j'ai deux menues objections:
1 - le fichier config peut être modifié par un admin/technicien qui ignore tout de python (ou qui trouve ça nul parce que perl-est-super (j'en ai déjà rencontré un))
2 - les fichiers config peuvent se trouver sous diverses versions et, surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom du fichier de config en paramètre de l'appli. Donc, dans ce dernier cas je ne sais pas comment faire proprement pour passer "dynamiquement" le nom du module conf.py. J'imagine qu'il faudrait juste que je passe un peu de temps à chercher ...
-- kato fong
NicolasP
2 - les fichiers config peuvent se trouver sous diverses versions et, surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom du fichier de config en paramètre de l'appli. Donc, dans ce dernier cas je ne sais pas comment faire proprement pour passer "dynamiquement" le nom du module conf.py. J'imagine qu'il faudrait juste que je passe un peu de temps à chercher ...
Ajouter le path du fichier de config à sys.path et importer le module :
2 - les fichiers config peuvent se trouver sous diverses versions et,
surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom
du fichier de config en paramètre de l'appli.
Donc, dans ce dernier cas je ne sais pas comment faire proprement pour
passer "dynamiquement" le nom du module conf.py. J'imagine qu'il
faudrait juste que je passe un peu de temps à chercher ...
Ajouter le path du fichier de config à sys.path et importer le module :
2 - les fichiers config peuvent se trouver sous diverses versions et, surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom du fichier de config en paramètre de l'appli. Donc, dans ce dernier cas je ne sais pas comment faire proprement pour passer "dynamiquement" le nom du module conf.py. J'imagine qu'il faudrait juste que je passe un peu de temps à chercher ...
Ajouter le path du fichier de config à sys.path et importer le module :
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf! Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, <snip/>
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
Oui, je comprends bien. Toutefois, dans le cas qui me préoccupe, j'ai deux menues objections:
1 - le fichier config peut être modifié par un admin/technicien qui ignore tout de python (ou qui trouve ça nul parce que perl-est-super (j'en ai déjà rencontré un))
si on se contente de chose genre PARAM1 = "toto" PARAM2 = 5.0
pas vraiment besoin de connaitre le python, c'est pas plus compliqué que la syntaxe d'un .ini standard
2 - les fichiers config peuvent se trouver sous diverses versions et, surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom du fichier de config en paramètre de l'appli. Donc, dans ce dernier cas je ne sais pas comment faire proprement pour passer "dynamiquement" le nom du module conf.py. J'imagine qu'il faudrait juste que je passe un peu de temps à chercher ...
Moi personnellement depuis que je fais du python je ne fais plus de
fichier de conf!
Ou plutôt mon fichier de conf est un fichier python que j'appelle
conf.py,
<snip/>
dans mon code je met import conf.py
et j'ai tous les paramètres de conf.
le parser de mon fichier de conf est python.exe ;)
Oui, je comprends bien. Toutefois, dans le cas qui me préoccupe, j'ai
deux menues objections:
1 - le fichier config peut être modifié par un admin/technicien qui
ignore tout de python (ou qui trouve ça nul parce que perl-est-super
(j'en ai déjà rencontré un))
si on se contente de chose genre
PARAM1 = "toto"
PARAM2 = 5.0
pas vraiment besoin de connaitre le python, c'est pas plus compliqué que la syntaxe d'un .ini standard
2 - les fichiers config peuvent se trouver sous diverses versions et,
surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom
du fichier de config en paramètre de l'appli.
Donc, dans ce dernier cas je ne sais pas comment faire proprement pour
passer "dynamiquement" le nom du module conf.py. J'imagine qu'il
faudrait juste que je passe un peu de temps à chercher ...
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf! Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, <snip/>
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
Oui, je comprends bien. Toutefois, dans le cas qui me préoccupe, j'ai deux menues objections:
1 - le fichier config peut être modifié par un admin/technicien qui ignore tout de python (ou qui trouve ça nul parce que perl-est-super (j'en ai déjà rencontré un))
si on se contente de chose genre PARAM1 = "toto" PARAM2 = 5.0
pas vraiment besoin de connaitre le python, c'est pas plus compliqué que la syntaxe d'un .ini standard
2 - les fichiers config peuvent se trouver sous diverses versions et, surtout, sous divers chemins d'accès. ce qui me conduit à passer le nom du fichier de config en paramètre de l'appli. Donc, dans ce dernier cas je ne sais pas comment faire proprement pour passer "dynamiquement" le nom du module conf.py. J'imagine qu'il faudrait juste que je passe un peu de temps à chercher ...
Laurent Pointal
Le Thu, 12 Jun 2008 12:25:37 +0200, JBB a écrit :
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf! Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, dans lequel je met des choses du genre:
<zip>
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
<zip>
bref on fait ce qu'on veut.
Je joue aussi à ça de temps en temps, c'est bien pratique.
Par contre, ça a deux limites:
1) la sécurité
En effet, un utilisateur peut mettre *ce qu'il veut* dans le fichier de configuration, ça sera exécuté par Python avec les droits de l'utilisateur qui lance l'application concernée.
2) ça oblige à avoir une syntaxe Python clean
Par exemple, pas possible de définir une chaîne de caractères:
Pour quelque chose de puissant, facile à utiliser pour la rédaction des fichiers de config, et un peu plus sécurisé, je conseille vraiment configobj: http://www.voidspace.org.uk/python/configobj.html
Le format des fichiers de config: http://www.voidspace.org.uk/python/configobj.html#config-files http://www.voidspace.org.uk/python/configobj.html#the-config-file-format
A+
Laurent.
-- Laurent POINTAL -
Le Thu, 12 Jun 2008 12:25:37 +0200, JBB a écrit :
Moi personnellement depuis que je fais du python je ne fais plus de
fichier de conf! Ou plutôt mon fichier de conf est un fichier python que
j'appelle conf.py, dans lequel je met des choses du genre:
<zip>
dans mon code je met import conf.py
et j'ai tous les paramètres de conf. le parser de mon fichier de conf
est python.exe ;)
<zip>
bref on fait ce qu'on veut.
Je joue aussi à ça de temps en temps, c'est bien pratique.
Par contre, ça a deux limites:
1) la sécurité
En effet, un utilisateur peut mettre *ce qu'il veut* dans le fichier de
configuration, ça sera exécuté par Python avec les droits de
l'utilisateur qui lance l'application concernée.
2) ça oblige à avoir une syntaxe Python clean
Par exemple, pas possible de définir une chaîne de caractères:
Pour quelque chose de puissant, facile à utiliser pour la rédaction des
fichiers de config, et un peu plus sécurisé, je conseille vraiment
configobj: http://www.voidspace.org.uk/python/configobj.html
Le format des fichiers de config:
http://www.voidspace.org.uk/python/configobj.html#config-files
http://www.voidspace.org.uk/python/configobj.html#the-config-file-format
Moi personnellement depuis que je fais du python je ne fais plus de fichier de conf! Ou plutôt mon fichier de conf est un fichier python que j'appelle conf.py, dans lequel je met des choses du genre:
<zip>
dans mon code je met import conf.py et j'ai tous les paramètres de conf. le parser de mon fichier de conf est python.exe ;)
<zip>
bref on fait ce qu'on veut.
Je joue aussi à ça de temps en temps, c'est bien pratique.
Par contre, ça a deux limites:
1) la sécurité
En effet, un utilisateur peut mettre *ce qu'il veut* dans le fichier de configuration, ça sera exécuté par Python avec les droits de l'utilisateur qui lance l'application concernée.
2) ça oblige à avoir une syntaxe Python clean
Par exemple, pas possible de définir une chaîne de caractères:
Pour quelque chose de puissant, facile à utiliser pour la rédaction des fichiers de config, et un peu plus sécurisé, je conseille vraiment configobj: http://www.voidspace.org.uk/python/configobj.html
Le format des fichiers de config: http://www.voidspace.org.uk/python/configobj.html#config-files http://www.voidspace.org.uk/python/configobj.html#the-config-file-format