Known bugs / limitations¶
If you find some bugs, you are welcome to report them :^)
Please see also the warnings.
Partial unicode handling¶
Unicode is only partially supported, for example it is not supported to
pre-populate the configuration object with unicode()
;
see not a true dict.
It also assumes all files use the same encoding (default to UTF8, or at least ASCII7).
Not a true dict¶
The configuration objects do not behave like a true dict
,
especially:
No type conversion on some methods¶
Type conversion is not supported, at least, on:
- pre-population / initialization (ie:
IHIHI((), {'a': 'b'})
) - functions:
pop
,popitem
,setdefault
,update
# this will not work as expected (yet)
conf = IHIHI('file.conf', {'pi': 3.14, 'lang': u'中文', u'中文': 'Chinese'})
# as a workaround, use this method
conf = IHIHI('file.conf')
conf['pi'] = 3.14
conf['lang'] = u'中文'
conf[u'中文'] = 'Chinese'
# now the defaults has been set, reparse
conf.reload(force=True)
# or you can alternatively, carefully specify (utf8) strings on the init
conf = IHIHI('file.conf', {'pi': '3.14', 'lang': u'中文'.encode('utf8'),
u'中文'.encode('utf8'): 'Chinese'})
# now you can
conf['test'] = u'$pi, $lang, $中文!'
print conf.get_unicode('test') # resolve as: 3.14, 中文, Chinese!
Single-line only¶
It does not, yet, support line-continuation; that mean your configuration value must fit on one line.