configparser handles multi-line values by indenting: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure .

ConfigObj (which I prefer) uses triple quotes: https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format

Don

On 7/17/19 10:58 PM, John Abreau wrote:
Is there a convention for multi-line records in .ini files?

I've been using .ini files extensively for over 20 years now, having long
ago rolled my own tools for reading them, and when I needed multi-line
records, I just incorporated the syntax of here-documents from the UNIX
shell. For example:

[events]
id=2019-jul
date=2019-07-17
start=6:30 pm
stop=9:00 pm
location=mite51-315
organization=blu
topic=Our 25th Anniversary
summary=A look back at our history
abstract << EOF
Boston Linux & UNIX was founded in 1994, originally as a Special Interest
Group  (SIG) of The Boston Computer Society (BCS). When the BCS
dissolved itself in 1996, our group's volunteer team chose to continue as
an independent user group.

We celebrate our 25th anniversary this month with pizza and cake, and a
retrospective look at our group's history.
EOF
confirmed=t

If there's a standards-compliant alternative for handling this, then I'd be
able to use standard INI-processing tools.


On Thu, Jul 18, 2019 at 12:48 AM John Hall <johnhall...@gmail.com> wrote:

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 <sl...@troubleshooters.com>
wrote:

On Fri, 12 Jul 2019 16:16:15 -0500
Derek Martin <inva...@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 <d...@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@blu.org
http://lists.blu.org/mailman/listinfo/discuss

_______________________________________________
Discuss mailing list
Discuss@blu.org
http://lists.blu.org/mailman/listinfo/discuss


_______________________________________________
Discuss mailing list
Discuss@blu.org
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to