[issue20923] ConfigParser should nested [] in section names.

2015-11-25 Thread Terry J. Reedy

Terry J. Reedy added the comment:

Victor, I reopened this a a doc issue to add the sentence that would have cut 
short the discussion.  Please leave it.

--
resolution: fixed -> 
status: closed -> open

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-25 Thread Terry J. Reedy

Changes by Terry J. Reedy :


--
assignee: docs@python -> terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-24 Thread Terry J. Reedy

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[^]]+)\]").

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.*)\]")
>>> 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 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-24 Thread Sebastian Bank

Sebastian Bank added the comment:

Terry: I am not so sure about that interpretation. Do we agree that the 
INI-files are the data/message? ConfigParser refuses to accept dirty INI-Files 
(with ']' in section names) but will produce this kind of files.
I we see the arguments given to ConfigParser as data/message, it does indeed 
accept dirty data as you say, but still it does not emit clean one in that 
case, right?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-24 Thread Terry J. Reedy

Terry J. Reedy added the comment:

Sebastian: you have it backwards.  A paraphrase of Postel's recommendation 
(calling it a Law is wrong) is 'accept dirty data, emit clean data'.  This is 
the current behavior.  See https://en.wikipedia.org/wiki/Robustness_principle.  
This article also explains the opposite viewpoint, that dirty data should be 
rejected, as SpaceOne is suggesting.

SpaceOne: unless it is your intention to discourage people from volunteering 
their time to respond to issues raised on the tracker, you should read what 
they write more carefully and think more carefully about how you express your 
opinions.  If you really want a ValueError here, open an new enhancement issue 
for 3.6.

--
type: behavior -> enhancement

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-24 Thread SpaceOne

SpaceOne added the comment:

Sorry about that!
I created http://bugs.python.org/issue25723.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-24 Thread Mark Lawrence

Mark Lawrence added the comment:

Why the debate on an issue that was closed over 18 months ago?

--
nosy: +BreamoreBoy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-24 Thread R. David Murray

R. David Murray added the comment:

The enhancement request was rejected.  At this point I think it would be better 
to open a new bug requesting that an error be raised if the supplied section 
name contains a ']'.  The question there is if there are backward compatibility 
issues.  That can be discussed on the new issue you open.

--
nosy: +r.david.murray

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-11-24 Thread SpaceOne

SpaceOne added the comment:

IMHO your rejection is stupid. User input should always be validated.

At least a ValueError should be raised if add_section() is called with a string 
containing ']\x00\n['. As this will always create a broken configuration.

Otherwise ConfigParser cannot be used to write new config files without having 
deeper knowledge about the implementation.

--
nosy: +spaceone

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2015-01-29 Thread Sebastian Bank

Sebastian Bank added the comment:

If this is the intended behaviuour, I guess ConfigParser should warn the user 
if he supplies a section name with a ']' (prevent failed roundtrips).

See http://bugs.python.org/issue23301

The current behaviour looks like the opposite of  Postel's law.

--
nosy: +xflr6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20923
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2014-03-15 Thread Miloš Komarčević

Miloš Komarčević added the comment:

Thanks for the exhaustive explanation.

I did however come across a proprietary application that stores it's 
configuration in an INI like file that exhibits this corner case behaviour with 
section names, hence the suggestion for enhancement.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20923
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2014-03-15 Thread Terry J. Reedy

Terry J. Reedy added the comment:

I see. Perhaps it uses a proprietary .ini reader ;-).

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20923
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20923] ConfigParser should nested [] in section names.

2014-03-14 Thread Terry J. Reedy

Terry J. Reedy added the comment:

This is invalid as a bug report, unless one considers that the presence of 
'_foo]' on the same line should have raised an exception. As an enhancement 
request, I think it should be rejected.

ConfigParser configuration language is based on msdos/windows .ini files. 
Similar files are used on windows. A configuration file consists of sections, 
each led by a [section] header, That and The section name appears on a line 
by itself, in square brackets ([ and ]). from
  https://en.wikipedia.org/wiki/.ini#Sections
mark [] as delimiters. I am rather sure that no other language/system allows 
square brackets in the section name. If you know differently, please present 
evidence. Unescaped delimiters are generally not allowed between delimiters 
unless there is a semantic reason to have nesting, and there is not one here. 
Parentheses, angle brackets, and curly brackets (and more from the rest of 
Unicode) are available to use. The request here is similar to asking that
  'abc'cd'
be parsed as one string. Parsing nested constructs is much more complicated 
than parsing flat constructs.

--
nosy: +terry.reedy
resolution:  - rejected
stage:  - test needed
status: open - closed
title: ConfigParser should be greedy when parsing section name - ConfigParser 
should nested [] in section names.
versions: +Python 3.5 -Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20923
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com