[Discuss] Application config files

John Hall johnhall2.0 at gmail.com
Thu Jul 18 00:46:34 EDT 2019


Use a standard library configuration file parser rather than rolling your
own.
For example configparser standard lib will provide your code with read and
write for ini files. There is no reason to introduce parsing errors or
vulnerabilities by rolling your own parser.
I would maintain the defaults as python code to generate the file if no ini
file is found rather than checking the ini file into version control.
Add a format version number to the ini file if you foresee a need to
migrate settings after updates. __fmt_ver_num  really is friendly enough.
Decide if users are going to use the gui or just edit the file, or separate
concerns and have gui related settings handled by the gui and have the user
edit the end of the file for all other settings.

I prefer to edit a file list in a file editor not in a little box.

Most linux settings files have their own  format. I agree that a standard
format is preferable for most apps but i really do not care or believe it
makes any difference which one you choose.

On Sat, Jul 13, 2019 at 8:17 PM Steve Litt <slitt at troubleshooters.com>
wrote:

> On Fri, 12 Jul 2019 16:16:15 -0500
> 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}}
>
> Your assertions (not copied here) about Python writing beautful
> json is true, but humans, not so much. One could easily write a Python
> json beautifier to help, but I still think complex json is hard for a
> human to edit.
>
> I think about 20 lines of Python could turn an .ini file into a list of
> dicts.
>
> SteveT
>
> Steve Litt
> July 2019 featured book: Troubleshooting Techniques
>      of the Successful Technologist
> http://www.troubleshooters.com/techniques
> _______________________________________________
> Discuss mailing list
> Discuss at blu.org
> http://lists.blu.org/mailman/listinfo/discuss
>


More information about the Discuss mailing list