[Discuss] Application config files

Jerry Feldman gaf at gapps.blu.org
Fri Jul 12 17:30:46 EDT 2019


Big advantage here is that it also somewhat forces a better structure on
the code. I keep a lot of my data in dictionaries also.

On Fri, Jul 12, 2019 at 5:17 PM Derek Martin <invalid at pizzashack.org> wrote:

> On Fri, Jul 12, 2019 at 02:07:20PM -0400, Steve Litt wrote:
> > On Fri, 12 Jul 2019 13:40:01 -0400
> > Dan Ritter <dsr at randomstring.org> wrote:
> >
> > > Jerry Feldman wrote:
> > > > I have an application that I wrote where I am using a .ini style
> > > > file for config. I chose that as an afterthought but maybe JSON,
> > > > YAML, or TOML might be better formats.
>
> > JSON is out from the get-go: It's not meant to be read and written by
> > humans.
>
> I largely disagree.  If it's currently in INI format the equivalent
> JSON should generally be perfectly human-readable, e.g.:
>
> {
>     "thingy": {
>         "name":  "foo",
>         "ip":    "10.1.2.3",
>         "value": 1,
>         "live":  true,
>         "notes": null
>     }
> }
>
> Here, "thingy" would be equivalent to your [section] and then its
> fields are the name-value pairs of that section.
>
> The advantages of JSON are that it's pretty ubiquitous, there are
> parsers to read and write the file available already in pretty much
> every language, so it's less code you have to write and test yourself,
> and if you ever want to switch languages this is a non-issue.  Plus,
> the code needed to parse the file is generally trivial, especially in
> Python.
>
>     >>> import json
>     >>> data = '''
>     ... {
>     ...     "thingy": {
>     ...         "name":  "foo",
>     ...         "ip":    "10.1.2.3",
>     ...         "value": 1,
>     ...         "live":  true,
>     ...         "notes": null
>     ...     }
>     ... }
>     ... '''
>     >>> parsed = json.loads(data)
>     >>> parsed
>     {u'thingy': {u'notes': None, u'ip': u'10.1.2.3', u'live': True,
> u'name': u'foo', u'value': 1}}
>     >>> print parsed["thingy"]["name"]
>     foo
>
> Of course, Python can do any of the mentioned options, so if you're
> sure you'll stick with that, it probably really doesn't matter.
>
> --
> Derek D. Martin    http://www.pizzashack.org/   GPG Key ID: 0xDFBEAD02
> -=-=-=-=-
> This message is posted from an invalid address.  Replying to it will
> result in
> undeliverable mail due to spam prevention.  Sorry for the inconvenience.
>
> _______________________________________________
> Discuss mailing list
> Discuss at blu.org
> http://lists.blu.org/mailman/listinfo/discuss
>


-- 
Jerry Feldman <gaf at blu.org>
Treasurer, Boston Linux and Unix
http://www.blu.org


More information about the Discuss mailing list