Peter Bengtsson wrote:
Suppose you've written this:

class ISomething(zope.interface.Interface):
     foo = zope.schema.TextLine(title="Foo")

then you get the error below.
First of all, why can't it just help me and just convert the str to a
unicode. All it'd need to do is just::

 title = unicode(title)

Django does this.
If someone does something bad like `TextLine(title="Ölmage")` that
developer should rightly get a UnicodeDecodeError.
Secondly, if there is an actual reason for this extreme analism, why
can't the error be wrapped into something more user friendly?

Very good points. I think UnicodeDecodeErrors have a bad reputation, though (mostly because of Python's stupid implicit conversion). I think Grok's policy is very sane in this regard: wherever human-readable text has to be entered, either a unicode object or a string just containing ASCII characters are acceptable. A very explicit error message stating that exact policy should be raised. Look at Grok's error messages, we've tried hard making them understandable.

I think a proposal on zope3-dev (plus a patch) would be welcomed.

Zope3-users mailing list

Reply via email to