The Python config objects are convenient and simple, but they have a problem: you can only save strings. That means you need to store numbers as strings and remember to use the getint()/getfloat() methods (or coerce by hand!), which is error prone and anti-pythonic. Storing a list is even uglier.
You could store ascii pickles, but those are pretty unpleasant to read in some cases.
Here's my solution: Encode it using a JSON encoder first! (I am using demjson)
Silly obvious code fragment:
def getValue(section,key,default=None): try: return JSON().decode(conf.get (section,key)) except: return default def setValue(section,key,value): value=JSON().encode(value) try: r=conf.set(section,key,value) except ConfigParser.NoSectionError: conf.add_section(section) r=conf.set(section,key,value) f=open(os.path.expanduser('~/.bartleblog/config'),'w') conf.write(f) return r
With just a little effort you can have a readable ascii typed python config file.