i dont know about your experience with config files, but there thousands of formats. on the python side -- just in this conversation, we mentioned ConfigObj, ConfigParser and the Config module i linked to. when everybody writes his own config, you get loads of unique formats.
anyway, for all the cry-babies here that can't edit pickle files. okay -- just load() them, change what you want, and dump() them. don't cry. and if you insist, i'm sure there's a python serializer to XML/SOAP/whatever other readble format. persistency is far better for configuration than config files. they are limited, have weird syntaxes, hard to extend, and are never generic enough. with my approach -- anything you can do in python, or anything you can pickle -- is possible. and for security issues -- usually config files are edited by admins, so that's not a problem. and per-user config files (at $HOME), can easily be achieved with execfile(). the point is NOT TO WRITE A PARSER for every config file. you can easily crash your web server (or make it non functional) if you pass an invalid port or host, or make it act weird by changing the timeouts or paths... so yeah, if the admin writes a config script that does os.system("rm -rf /"), well, too bad. but then the admin can do stupid things at the shell level as well. again -- the points are: * python is readable and easy to write config files with * usually admins change the configuration, and they have too much power anyway * if you worry about security/too much power, pickle your config * if you need to edit your pickled config on a regular basis, serialize it with some other textual serializer (xml, etc). but inventing proprietary formats with unique syntaxes, and having to write and debug parsers for them -- that's stupid. a configuration is just a persistent state of your program. it shouldnt be any more complex than that. -tomer -- http://mail.python.org/mailman/listinfo/python-list