[Baypiggies] configuration parser using python modules?
Dmitry Kuzmenko
morfizm at gmail.com
Sun Jul 15 18:16:53 CEST 2012
I came across a nice combo solution yesterday: little embedded json lists
inside ConfigParser's config (from http://stackoverflow.com/a/9735884):
[Foo]
fibs: [1,1,2,3,5,8,13]
>>> json.loads(config.get("Foo","fibs"))
[1, 1, 2, 3, 5, 8, 13]
Notice that you can actually span values over multiple lines, useful for
long strings, as long as you add some tab/whitespace indent:
[Foo]
fibs: [
"1",
"1",
"2",
"3",
"5",
"8",
"13"
]
The only annoyance is that you have to use double quotes (json), and you
can't put a comma after last string.
Dima.
-----Original Message-----
From: Neil [mailto:neilkumar at gmail.com]
Sent: Saturday, July 14, 2012 10:33 AM
To: Brent Tubbs
Cc: baypiggies at python.org
Subject: Re: [Baypiggies] configuration parser using python modules?
I like YAML too. I feel like JSON is only slightly better than XML as for
being human editable (assuming its been pretty printed, otherwise a huge
JSON document can be worse off as far as readability goes compared to XML)
-- as it doesn't allow adding comments (which I think is very important for
configuration files) and it barfs on things like a trailing comma on a list
or hash definitions.
-neil
On Sat, Jul 14, 2012 at 8:43 AM, Brent Tubbs <
<mailto:brent.tubbs at gmail.com> brent.tubbs at gmail.com> wrote:
> My peeve against ConfigParser is that if you want a list of things,
> you end up faking it with some incomplete-looking syntax
>
> [my_things]
> thing1 =
> thing2 =
>
> That makes me sad. (I'm looking at you, .hgrc.)
>
> These days all my config files are YAML. You get all the lists and
> hashes that JSON can do, but you can leave out all the quote marks and
> curly braces, which is a big plus for readability.
>
>
> On Fri, Jul 13, 2012 at 10:38 PM, Ian Zimmerman < <mailto:itz at buug.org>
itz at buug.org> wrote:
>>
>>
>> David> app written in Python, some pub-sub stuff written in JS on
>> David> Node
>>
>> In this case, JSON seems like an obvious choice for a config format
>> :-P
>>
>> Personally, I try to just use eval(read(open(CONFFILE))) whenever
>> remotely possible , guarded against surprises of course.
>>
>> The ConfigParser module is quite unpleasant IMO. Particularly
>> because the natural structure to hold such information is either a
>> dictionary or an object with named fields, but that's not what
ConfigParser gives you.
>>
>> --
>> Ian Zimmerman
>> gpg public key: 1024D/C6FF61AD
>> fingerprint: 66DC D68F 5C1B 4D71 2EE5 BD03 8A00 786C C6FF 61AD
>> <http://www.gravatar.com/avatar/c66875cda51109f76c6312f4d4743d1e.png>
http://www.gravatar.com/avatar/c66875cda51109f76c6312f4d4743d1e.png
>> Rule 420: All persons more than eight miles high to leave the court.
>> _______________________________________________
>> Baypiggies mailing list
>> <mailto:Baypiggies at python.org> Baypiggies at python.org
>> To change your subscription options or unsubscribe:
>> <http://mail.python.org/mailman/listinfo/baypiggies>
http://mail.python.org/mailman/listinfo/baypiggies
>
>
>
> _______________________________________________
> Baypiggies mailing list
> <mailto:Baypiggies at python.org> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> <http://mail.python.org/mailman/listinfo/baypiggies>
http://mail.python.org/mailman/listinfo/baypiggies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20120715/ca529164/attachment.html>
More information about the Baypiggies
mailing list