[Zope-Coders] Changes to ZPublisher
Sidnei da Silva
sidnei at awkly.org
Wed Oct 6 13:06:48 EDT 2004
On Wed, Oct 06, 2004 at 12:54:14PM -0400, Chris McDonough wrote:
| > I suppose you are referring to the stuff below here.
|
| It appears I misread this; you don't do getattr or getitem when you get
| an AttributeError/KeyError from __bt__, that's good.
I actually do right now, but I feel it's wrong. ZPublisher didn't do
it before. If you say not doing it is good, then I'm surely removing
it.
| > The intention here is not introduce anything new, but to traversal
| > using __bobo_traverse__ behave the same way as attribute traversal
| > with regards to exceptions raised.
|
| I guess the difference is that the publisher is trying to catch
| AttreibuteError/KeyError/TypeError/IndexError as a result of its own
| operations to *get* the object. I don't think it was ever intended that
| if you raise an AttributeError/KeyError from app code (implemented, in
| this case, in __bt__) that it would have the side effect of causing a
| NotFoundError. I know that's the effect of the current code, but I
| really don't think that when the Publisher was implemented that this was
| ever considered.
The main reasoning for all of this was that:
- __bt__ exceptions would pass by unmodified on ZPublisher
- so we thought raising NotFound from __bt__ would be fine
- but then it broke PageTemplates.Expressions (SubPathExpression)
because it doesn't expect a NotFound
- raising AttributeError copes well with PageTemplates.Expressions
- but in the case of ZPublisher it should really be NotFound, as it is
really coming from the browser, and not trying to find an attribute
in application code
- Tres said that NotFound should not be raised by application code,
but only by ZPublisher.
So, just to clarify, are you ok with converting the
AttributeError/KeyError to NotFound on ZPublisher and not trying to
fallback to __getattr__/__getitem__?
--
Sidnei da Silva <sidnei at awkly.org>
http://awkly.org - dreamcatching :: making your dreams come true
http://www.enfoldsystems.com
http://plone.org/about/team#dreamcatcher
I bet the human brain is a kludge.
-- Marvin Minsky
More information about the Zope-Coders
mailing list