Greatly sanify the way we marry Zope 3 ZPTs and Zope 2 traversal.
Basically, zope.app's path expressions use ITraversable adapters to traverse through the object graph. This is the only sane thing to do, really. However, we still want to take care of Zope2's OFS.Traversable which most promimently allowes the __bobo_traverse__ hook. (The irony is that OFS.Traversable uses Zope 3-style *URL* traversal these days; yes, *URL* traversal, not *object graph* traversal). Still confused? Basically, if we encounter something that is OFS.Traversable'ish, use restrictedTraverse. Use Zope3-style object graph traversal in all other cases....
Showing
Please register or sign in to comment