New submission from Nacsa Kristóf:

http://hg.python.org/cpython/file/8d5df9602a72/Lib/ConfigParser.py#l529

RawConfigParser has a special case of replacing '""' with '' in reader.
However the writer does not do the same.

This may cause problems, for example if you merge multiple ini files into one 
and the 3rd party program that should use the output segfaults on an ini that 
has `key=` instead of `key=value`, as it is in my case. :)

I think that the reasoning with the reader maybe was that an empty string must 
be an empty python string. 
However there is no option to control how it gets written back to the output. 
One can of course walkaround it by replacing the '' values with '""', but I 
think the standard library is ought to be consistent, walkarounds are 
unpythonic, a raw parser should be transparent either way, and there should 
preferrably be one obvious way to do it.

I think this is not just unintuitive (especially in a parser called "raw"), but 
goes against the philosophy of "refusing the temptation to guess". 

As I know, the syntax of .ini files is not exactly well-defined, so the best 
option in my opinion would be allowing to configure the parser how to treat 
these values.

Whether or not adding this option is viable, I think the problem still remains 
that the writer now works inconsistently of the reader.

----------
components: Library (Lib)
messages: 201829
nosy: Nacsa.Kristóf
priority: normal
severity: normal
status: open
title: RawConfigParser modifies empty strings unconditionally
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19461>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to