ConfigObject is a wrapper to the python ConfigParser to allow to access sections/options with attribute names:
>>> from ConfigObject import ConfigObject
>>> config = ConfigObject()
>>> config.section.value = 1
Values are stored as string:
>>> config.section.value
'1'
Values are returned as ConfigValue to convert result to other types:
>>> config.section.value.as_int()
1
Here is how list are stored:
>>> config.section.value1 = list(range(2))
>>> print(config.section.value1)
0
1
>>> config.section.value1.as_list()
['0', '1']
You can use keys:
>>> config['set']['value'] = 1
>>> config['set']['value'].as_int()
1
You can set a section as dict:
>>> config.dict = dict(value=1, value2=['0', '1'])
>>> config.dict.value.as_int()
1
>>> config.dict.value2.as_list()
['0', '1']
Update it:
>>> config.dict.update(value2=[1, 2])
>>> config.dict.value2.as_list()
['1', '2']
See what your section look like:
>>> config['set']
{'value': '1'}
Delete options:
>>> del config['set'].value
>>> config['set']
{}
Playing with files:
>>> filename=os.path.join(tempfile.gettempdir(), 'config.ini')
>>> config = ConfigObject(filename=filename)
>>> config.section = dict(value=1)
>>> config.write()
>>> config = ConfigObject(filename=filename)
>>> config.section.value.as_int()
1
>>> os.remove(filename)
ConfigParser wrapper
convert value to bool:
>>> config = ConfigObject()
>>> config.bools = dict(true=True, false=False)
>>> config.bools.true
'true'
>>> config.bools.true.as_bool()
True
>>> config.bools.true.as_bool('on', 'off')
'on'
>>> config.bools.false
'false'
>>> config.bools.false.as_bool()
False
>>> config.bools.false.as_bool('on', 'off')
'off'
>>> config.bools.none.as_bool()
False
convert value to float
convert value to int
convert value to list:: >>> config = ConfigObject() >>> config.listes = dict(liste=[0, 1], string=‘1;2;3’)
>>> print(config.listes.liste)
0
1
>>> config.listes.liste.as_list()
['0', '1']
>>> config.listes.string.as_list(sep=';')
['1', '2', '3']
Allow to set a ConfigObject as module. You have to add this to yourproject/config.py:
# -*- coding: utf-8 -*-
from ConfigObject import config_module
import os
filename = os.path.join(os.path.dirname(__file__), 'config.ini')
config = config_module(__name__, __file__, filename)
Then you are able to use from yourproject import config where config is the ConfigObject itself.