On Tue, 27 Jul 2010 05:09:09 am Albert-Jan Roskam wrote: > Hi, > > I am making a data processing program that will use a configuration > file. The file should contain information about: (1) source files > used, (2) (intermediate) output files, (3) used parameters/estimation > methods (4) manual data edits + datetime stamp + user name . I'd like > to store this config file in xml.
Why XML? Even though XML is plain text, it is *not* a human writable format, except perhaps for the simplest data. XML is one of those things which has become "the in-thing" and is used in all sorts of inappropriate places just because "everybody else uses XML". Even *supporters* of XML describe themselves as having "drunk the XML Kool-Aid". (For those who are unaware, "drinking the Kool-Aid" refers to the Reverend Jim Jones mass murder-suicide back in the 70s, when nearly a thousand cult members drank poison-laced Kool-Aid.) XML is extremely verbose and inefficient. It has its uses, but the best advice I can give is, don't use XML unless you need to communicate with something that expects XML, or unless your data is so complex that you need XML. Some alternatives: If you're using Python 2.6 or better, you might consider the plistlib module for a thin wrapper around XML. JSON is often considered a more friendly format. Some people prefer YAML over JSON, although YAML isn't in the standard library. If your data is in the form option:value, then ConfigParser (Windows-style ini files) may be all you need. > However, I've never created > something like this before. Is this a suitable format, and, if so, > what would the elementtree look like? You tell us, it's your data :) > Should I just use 'config' or > something similar as root, and the information elements 1 through 3 > as child elements? And should the manual edits be stored as an > element 'edit' with various attributes (the edit itself, the time > stamp, etc.)? How would you store the data in a Python class? Design your class first. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor