Terry J. Reedy added the comment:
Discussion continues because my close message was, I now realize, incomplete
and therefore unsatisfying. Ditto for the doc. So I complete my close message
here and reopen issue to augment the doc.
The discussion has so far has glossed over the key question: "What is a legal
section name?" Pulling the answer from the doc was a challenge. It uses 'legal
section name', once, as if one should already know. Reading further, I found
the answer: there is no (fixed) answer!
The legal section name for a particular parser is determined by its .SECTCRE
class attribute.
'''configparser.SECTCRE
A compiled regular expression used to parse section headers. The default
matches [section] to the name "section".''' (This neglects to say whether the
closing ']' is the first or last ']' on the line after the opening '['.) A
non-verbose version of the default is
re.compile(r"\[(?P<header>[^]]+)\]").
I propose adding near the top of the doc:
"By default, a legal section name can be any string that does not contain '\n'
or ']'. To change this, see configparser.SECTCRE."
So my response to Miloš should have been to set SECTCRE to something like p
below.
>>> p = re.compile(r"\[(?P<header>.*)\]")
>>> m = p.search("[Test[2]_foo]")
>>> m.group('header')
'Test[2]_foo'
Additional note: Postel's principle was formulated for internet protocols,
which .ini files are not. In any case, it is not a Python design principle.
Neither is "always check user input", which amounts to 'look before you leap'.
So I will not debate these. However, "Errors should never pass silently." is
#10 on the Zen of Python ('import this') and that I do attend to.
----------
assignee: -> docs@python
components: +Documentation
nosy: +docs@python
resolution: rejected ->
stage: test needed -> needs patch
status: closed -> open
versions: +Python 2.7, Python 3.4, Python 3.6
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue20923>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com