This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author tcourbon
Recipients tcourbon
Date 2009-12-05.20:36:51
SpamBayes Score 6.013523e-13
Marked as misclassified No
Message-id <1260045414.09.0.536880658138.issue7446@psf.upfronthosting.co.za>
In-reply-to
Content
Hi there !

According the documentation [1], the following code should work :
>>> from http.cookies import SimpleCookie
>>> c = SimpleCookie({'field1': 'value1', 'field2': 'value2'})
>>> print(c)
'Set-Cookie: field1=value1\r\nSet-Cookie: field2=value2'

But an exception is raised : 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\python31\lib\http\cookies.py", line 507, in output
    result.append( V.output(attrs, header) )
AttributeError: 'str' object has no attribute 'output'

in BaseCookie.load(...) the call to BaseCookie.update(rawdata) seem to
use dict.__setitem__ instead of BaseCookie.__setitem__.

Despite it's weird (I believe that the __setitem__ of the child class
should be used) I don't know why.

I don't have a solution to this underlying issue so I propose to define
an update method for BaseCookie:
def update(self, other=None, **kwargs):
    if other is None:
        other = kwargs
    elif not hasattr(other, 'items'):
        other = dict(other)
    for k, v in other.items():
        self[k] = v

This method behave like the dict one.

Hope it help and it's not a duplicate.

Regards,
Thomas


[1] :
http://docs.python.org/3.1/library/http.cookies.html#http.cookies.BaseCookie.load
History
Date User Action Args
2009-12-05 20:36:54tcourbonsetrecipients: + tcourbon
2009-12-05 20:36:54tcourbonsetmessageid: <1260045414.09.0.536880658138.issue7446@psf.upfronthosting.co.za>
2009-12-05 20:36:52tcourbonlinkissue7446 messages
2009-12-05 20:36:51tcourboncreate