Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Case sensitivity bug in ConfigParser?

Reply
Thread Tools

Case sensitivity bug in ConfigParser?

 
 
asqui
Guest
Posts: n/a
 
      08-17-2004
[Apologies if this posted twice... google groups timed out on the form
POST]

(Assume an instantiated ConfigParser, c, with a loaded file)
>>> c.get("DEFAULT", "foo", False, {"foo": "Bar"})

'Bar'

>>> c.get("DEFAULT", "Foo", False, {"Foo": "Bar"})

Traceback (most recent call last):
File "<pyshell#70>", line 1, in ?
c.get("DEFAULT", "Foo", False, {"Foo": "Bar"})
File "C:\Python23\lib\ConfigParser.py", line 513, in get
raise NoOptionError(option, section)
NoOptionError: No option 'foo' in section: 'DEFAULT'


The offending code appears to be as follows (in ConfigParser.py):
def get(self, section, option):
opt = self.optionxform(option)
if section not in self._sections:
if section != DEFAULTSECT:
raise NoSectionError(section)
if opt in self._defaults:
return self._defaults[opt]
else:
raise NoOptionError(option, section)
elif opt in self._sections[section]:
return self._sections[section][opt]
elif opt in self._defaults:
return self._defaults[opt]
else:
raise NoOptionError(option, section)

It uses optionxform on the supplied option, but not on the one in the
defaults dictionary. If you're going to impose a transform then you
have to do it consistently, imho...

>>> c.get("DEFAULT", "Foo", False, {"foo": "Bar"})

'Bar'

The supplied "Foo" gets transformed to "foo" and matches the one in
the defaults dictionary.

Seems a bit counterintuitive to expect that you supply any defaults as
pre-transformed according to your specified optionxform.

I'm not sure if this is also a problem when reading a file, but there
seems to be a related post about this (with no replies!) dating back
to 2000 http://groups.google.com/groups?hl=e...nnrp1.deja.com

I don't have time to look into it now but I'd guess this problem was
resolved in the more obvious location (when reading a file) but
patching of the defaults dictionary case was omitted.


asqui
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Case Sensitivity of Component Names Not Consistent? Harry Whitehouse ASP .Net 0 09-15-2004 01:08 AM
case sensitivity for Thunderbird message filter Maleki Firefox 1 08-26-2004 06:26 AM
Case sensitivity bug in ConfigParser? asqui Python 0 08-17-2004 10:38 AM
Case sensitivity bug in ConfigParser? asqui Python 0 08-17-2004 09:50 AM
Thunderbird Message Filter Case Sensitivity Maleki Firefox 0 08-16-2004 02:48 PM



Advertisments