Tim Chase <python.l...@tim.thechases.com> added the comment:

Yes, the use-case is the same as a dict.get(key, default) which I frequently 
use -- so it can be used in things like

  result = some_function(
     cp.get('MySection', 'MyValue', default='hello'),
     cp.getint('MySection', 'MyInt', default=42)
     )

To write something similar with the current ConfigParser requires a lot more 
code or an inelegant wrapper (either passing the config-parser object each 
call, or capturing the parser object in a closure which makes the "def" 
something repeated):

  try:
    mv = cp.get('MySection', 'MyValue')
  except (NoSectionError, NoOptionError), e:
    mv = 'hello'
  try:
    mi = cp.getint('MySection', 'MyInt')
  except (NoSectionError, NoOptionError), e:
    mi = 42
  result = some_function(mv, mi)
  del mv, mi  # leaving the namespace as it was before

The above can be done in a scattering of wrapper functions, but the addition in 
stock ConfigParser prevents a lot of duplicate code.  This is the fourth 
project in which I've used the ConfigParser and have reached for a default 
value in every one of them, to be frustrated by the lack.

The old-style "raise ValueError" you mention was the original code (just 
indented), but I've changed it to the preferred format.

For the dangling close-paren or "):" on its own line, I tend to do it for the 
same reason a trailing comma is allowed/encouraged in lists/tuples/dicts/param 
lists, so it's easy to add further comma-separated entries without giving 
cluttered diffs.  The source against which I'm patching has several dangling 
close-parens already (search for "^\s*)" to find the calls to re.compile).

I pulled down the branches/py3k and patched against it. (attached)

----------
Added file: http://bugs.python.org/file17280/configparser.diff

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

Reply via email to