I have:
    def reset(self):
        """ Reset password for email given in POST arguments """
        from formencode import validators

        mail_validator = validators.Email(not_empty=True)
        try:
            mail = request.params.get("mail")
            mail_validator.to_python(mail)
        except validators.Invalid, e:
            return e

Which is called through a AJAX h.submit_to_remote call, which updates
a DIV element with the "e".


Actually, I sent an email to Allan before, and he sent:

The application/framework is responsible for all encoding/decoding,
according to the WSGI spec:

http://www.python.org/dev/peps/pep-0333/#unicode-issues

The WSGI interface only supports plain strings.

- Allan



On Nov 29, 2007 11:56 AM, Ian Bicking <[EMAIL PROTECTED]> wrote:
> Anil wrote:
> > I am using Formencode and it seems that it throws an uuencoded Invalid
> > exception and flup seems to have problems with it. I don't notice it
> > on another server with the same code and same version of Pylons/flup.
> >
> > Whats the best way to fix this? If I should encode the form "error
> > message" to utf-8, where and how should I do that?
>
> This is probably a flup bug, as it should handle unicode exceptions
> properly.
>
> Of course generally you catch Invalid exceptions and handle them.  But
> flup should handle it more gracefully when you don't.
>
> I've copied Allan, the flup author, on this.
>
>
> >
> > <type 'exceptions.AssertionError'>    Python 2.5.1: /usr/local/bin/python2.5
> > Thu Nov 29 11:32:34 2007
> >
> > A problem occurred in a Python script. Here is the sequence of
> > function calls leading up to the error, in the order they occurred.
> >  /opt/abc/build/bdist.freebsd-6.2-RELEASE-amd64/egg/flup/server/scgi_base.py
> > in run(self=<flup.server.scgi_base.Request object at 0x8d9f82c>)
> >   183
> >   184         try:
> >   185             self._conn.server.handler(self)
> >   186         except:
> >   187             self.logger.exception('Exception caught from handler')
> >  /opt/abc/build/bdist.freebsd-6.2-RELEASE-amd64/egg/flup/server/scgi_base.py
> > in handler(self=<flup.server.scgi.WSGIServer object at 0x849e8ec>,
> > request=<flup.server.scgi_base.Request object at 0x8d9f82c>)
> >   458                     for data in result:
> >   459                         if data:
> >   460                             write(data)
> >   461                     if not headers_sent:
> >   462                         write('') # in case body was empty
> >  /opt/abc/build/bdist.freebsd-6.2-RELEASE-amd64/egg/flup/server/scgi_base.py
> > in write(data=Invalid(u'Please enter an email address',))
> >   400
> >   401         def write(data):
> >   402             assert type(data) is str, 'write() argument must be 
> > string'
> >   403             assert headers_set, 'write() before start_response()'
> >   404
> >
> > <type 'exceptions.AssertionError'>: write() argument must be string
>
> --
> Ian Bicking : [EMAIL PROTECTED] : http://blog.ianbicking.org
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to