YAML config file parser

Peter Maas fpetermaas at netscape.net
Fri Feb 13 12:53:23 CET 2004

A.M. Kuchling wrote:
>>structures into the configuration. From the sysadmin's perspective this
>>is not so satisfactory: he would prefer a common configuration format
>>for his system. 
> I don't believe that assertion. 

Belief is not debatable :)

 > We have whitespace-delimited files (cron,
> /etc/hosts), colon-delimited files (passwd, groups), files containing
> line-oriented commands (resolv.conf), ones grouped into subsections and ones
> that are flat, etc. and everyone manages to survive.

Easyness and fun is more than surviving. The files you mention
are linux system files. To create a unified config format for
linux/unix is a task that Python can't handle. I speak only of
application configurations.

> YAML also has the disadvantage of being a complicated format to learn 

YAML isn't as verbose as XML, good for editor users. Config files
should need only a YAML subset: strings, numbers, dates, lists,
dictionaries. This seems to be fairly easy.

 > it borrows features from Unix-style config files,
 > Python, XML, and RFC 2822, but it doesn't look like any of them

Which UNIX style? Anyway, it shouldn't look like Python because
Perl programmers and non-programmers should also be happy with it.

> A good feature of using Python for some applications is that you can then
> provide alternatives such as:
> if socket.gethostname() == 'devel':
>     LOG_LEVEL = 'debug'
> else:
>     LOG_LEVEL = 'warn'
> This is messier in a declarative format.

A configuration file should contain a set of mutually independent
variables describing the state of the installed application. This
is not messy. I see mixing of state and logic as a conceptual
disadvantage. It makes life easy for the programmer but not for
the users who sometimes happen to be non-programmers.

Knowing the source is mostly fine but *having* to know the source all
the time is not so fine. Not every language is as friendly as Python.

Mit freundlichen Gruessen,

Peter Maas

Peter Maas, M+R Infosysteme, D-52070 Aachen, Hubert-Wienen-Str. 24
Tel +49-241-93878-0 Fax +49-241-93878-20 eMail peter.maas at mplusr.de

More information about the Python-list mailing list