This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Add support for duplicate options in configparser
Type: enhancement Stage:
Components: Library (Lib) Versions: Python 3.3
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: lukasz.langa Nosy List: brian.curtin, eric.araujo, lukasz.langa, ojab
Priority: normal Keywords:

Created on 2011-07-31 13:09 by ojab, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (6)
msg141463 - (view) Author: (ojab) Date: 2011-07-31 13:09
Allow configparser to process duplicate options, just concatenating it's values, so using file

[sect1]
opt1=asd;
opt2=qwe
opt1=fgs

we will have config['sect1']['opt1'] == 'asd;fgs'
msg141666 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2011-08-05 16:26
Thanks for the report.  Could you tell us more about the use cases?  Are you aware of some config files using this form?
msg141676 - (view) Author: (ojab) Date: 2011-08-05 19:05
There is some [leagcy] proprietary soft-switches, which uses this config format.
Personally I use [hacked] configparser to process Mera systems MVTS/SIP-HIT configs in this format, for example.
msg141677 - (view) Author: Brian Curtin (brian.curtin) * (Python committer) Date: 2011-08-05 19:11
This would break existing config files, including some of my own. 

It would also require that you have some end delimiter on every item in order to handle the event that someone duplicates options, otherwise the following would likely behave badly in your application

[sect]
opt=first
opt=second

This would give you "firstsecond" that you'd somehow need to parse. Sometimes if I'm testing out options, like I want to check how "second" works, I'll quickly just do it as above. With a change like this, I couldn't do that, I'd be forced to comment out the first line, or add a delimiter and split on it.
msg141678 - (view) Author: (ojab) Date: 2011-08-05 19:40
It may be impelmented as configparser.ConfigParser(strict=yes|no|multiline), so no existing configs will be broken.
msg141688 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2011-08-05 20:46
This specific config format you're discussing strikes me as error prone and barely useful. With the use case you've given I cannot justify introducing support for it in the standard library. Remember that each switch, variant, however obscure and rarely used, increases source code complexity and introduces a maintenance burden.

As you've seen with the freshly introduced `strict` option, we're generally heading the other direction: to let application users know early they potentially made a misconfiguration that could confuse them later on.

So, thanks for your feedback but unfortunately I will have to say no to that proposal.
History
Date User Action Args
2022-04-11 14:57:20adminsetgithub: 56871
2011-08-05 20:46:45lukasz.langasetstatus: open -> closed
resolution: rejected
messages: + msg141688
2011-08-05 19:40:05ojabsetmessages: + msg141678
2011-08-05 19:11:30brian.curtinsetnosy: + brian.curtin
messages: + msg141677
2011-08-05 19:05:46ojabsetmessages: + msg141676
2011-08-05 16:26:58eric.araujosetnosy: + eric.araujo

messages: + msg141666
title: Allow configparser to process suplicate options -> Add support for duplicate options in configparser
2011-07-31 13:17:59georg.brandlsetassignee: lukasz.langa

nosy: + lukasz.langa
2011-07-31 13:09:11ojabcreate