3.8.18.6. Leçon sur la gestion des configurations avancées¶
Voir vacumm.misc.config
, configObj
(http://www.voidspace.org.uk/python/configobj.html),
How to write a script.
Le but est de pouvoir gérer des fichiers de configuration plus évolués qu’avec ConfigParser
:
- Sections imbriquées.
- Valeurs par défaut via le fichier de spécification.
- Vérification des valeurs.
- Accès comme un dictionnaire.
Le module vacumm.misc.config
offre une interface pratique pour gérer ces configurations,
et des outils pour les exploiter encore plus loin (ex: utilisation avec argparse
).
Fichier courses_advanced_cfgm.py
#!/usr/bin/env python
# -*- coding: utf8 -*-
"""Gestion de configurations avancées"""
from vcmq import ConfigManager
from ConfigParser import SafeConfigParser
# Initialisation avec fichier de specifications
cfgm = ConfigManager('courses_advanced_cfgm.ini')
# Valeurs par défaut
print cfgm.defaults() # -> CHANGER LE .INI
# Chargement de sa configuration personnelle
cfg = cfgm.load('courses_advanced_cfgm.cfg') # -> CHANGER LE .CFG
print cfg
print type(cfg)
# Modification
cfg['plot']['linewidth'] = 2.
print cfg
# -> AJOUTEZ UNE SOUS-SECTION AUX .INI ET .CFG
# Via ConfigParser
cfg2 = SafeConfigParser()
cfg2.read('courses_advanced_cfgm.cfg')
print cfg2
print cfg2.get('plot', 'linewidth')
print cfg2.getfloat('plot', 'linewidth')
Fichier de spécifications courses_advanced_cfgm.ini
[logger]
level=option(debug,info,warning,error,default=debug)
[plot]
linewidth=float(min=0,default=1)
Fichier de configuration courses_advanced_cfgm.cfg
[plot]
linewidth=1.3