Is there a ConfigParser which keeps comments
Cameron Simpson
cs at zip.com.au
Thu Mar 15 17:42:24 EDT 2012
On 14Mar2012 13:13, Tim Chase <python.list at tim.thechases.com> wrote:
| On 03/14/12 12:06, Terry Reedy wrote:
| > On 3/14/2012 6:07 AM, Gelonida N wrote:
| >> Now I'm looking for a library, which behaves like config parser, but
| >> with one minor difference.
| >>
| >> The write() mehtod should keep existing comments.
| >
| > Assuming that you have not overlooked anything, I would just subclass
| > ConfigParser with an altered write method.
|
| It would require a lot more than that. It would entail changing
| the reading as well so that it preserved the comments as well as
| the order of sections & keys, and a way of storing those
| associated comments in sequence. I looked into it a fair while
| back and it was a LOT more work than I cared to do for minimal
| gain. I wimped out and just documented it with "If you use the
| ability to (re)write a configuration file, it will not keep any
| comments or ordering from any original sources."
A low cost approach might be to patch the file instead of transcribing
the in-memory state. Not the same semantics, but it would not be too
hard to add a patch_config(filename, section, setting, value) that read
the old file and wrote a new one with an adjusted section, ignoring the
in-memory state (indeed, on that basis the siganture isn't a method but
a standalone function).
The logic is easy enough that I even wrote a shell script in 2004 to do
essentially this:
https://bitbucket.org/cameron_simpson/css/src/ef42896872b5/bin/winclauseappend
One could imagine an efficient python implementation and a ConfigParser
subclass that patched the file if a setting got changed, or had a .patch
method to apply particular setting changes as desired.
Cheers,
--
Cameron Simpson <cs at zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/
From sci.physics:
tron at mailzone.com:
The only problem is, how do you send a message from Earth to Mars
instantly? Does anyone have any ideas about where we can start?
John Baez <baez at math.mit.edu:
Just use a coordinate system in which the point at which the message is
received has the same t coordinate as the point at which the message was sent.
More information about the Python-list
mailing list