Re: [Paste] webob.Request decode_param_names not working?

Top Page
Author: Ryan Barrett
Date:  
To: paste-users
Subject: Re: [Paste] webob.Request decode_param_names not working?
i've attached another small patch that fixes a small bug in UnicodeMultiDict.
it assumed that cgi.FieldStorage always filled in its filename attribute, but
for application/x-www-form-urlencoded parts, the filename attribute is
actually None. more at the bottom of http://python.org/doc/lib/node560.html.

On Sat, 9 Feb 2008, Ryan Barrett wrote:

> hi all! i'm trying to understand webob.Request's decode_param_names keyword
> arg, but i'm not having much luck. i've attached a patch against trunk that i
> think fixes one bug, but even with the fix, i'm not sure i understand the
> intent behind the code.
>
> decode_param_names is passed through to decode_keys in UnicodeMultiDict. if
> it's True, keys returned by methods like keys(), items(), etc. are decoded.
> however, keys passed in to methods like __getitem__ and __setitem__ are
> expected to be encoded.
>
> that means that expressions like umd[umd.keys()[0]] fail with a KeyError,
> which seems counter-intuitive. was that really the intent?
>
> -Ryan


-Ryan*** webob-trunk/webob/multidict.py Sat Feb 9 19:27:03 2008
--- webob/webob/multidict.py Sun Feb 10 10:52:04 2008
***************
*** 288,294 ****
              value = copy.copy(value)
              if self.decode_keys:
                  value.name = value.name.decode(self.encoding, self.errors)
! value.filename = value.filename.decode(self.encoding, self.errors)
          else:
              try:
                  value = value.decode(self.encoding, self.errors)
--- 288,296 ----
              value = copy.copy(value)
              if self.decode_keys:
                  value.name = value.name.decode(self.encoding, self.errors)
! if value.filename:
! value.filename = value.filename.decode(self.encoding,
! self.errors)
          else:
              try:
                  value = value.decode(self.encoding, self.errors)
_______________________________________________
Paste-users mailing list
Paste-users@???
http://webwareforpython.org/cgi-bin/mailman/listinfo/paste-users