Traverse to Object by Interface
This product provides a utility that returns a object which provides a given interface. The returned object could be the given object or any object down the path towards the root.
>>> from collective.traverse.interfaces import ITraverse >>> from somewhere import IMyInterface >>> root_traverser = getUtility(ITraverse, name="rootTraverser") >>> myType = root_traverser(self.context, IMyInterface)
Add this to your buildout:
eggs = collective.traverse
zcml = collective.traverse
And then run buildout.
collective.traverse - 1.1 
Fixed a recursion bug when using portal_setup. There, somehow parent == context ;) [Daniel Kraft]
collective.traverse - 1.0 Unreleased
Initial package structure. [zopeskel]
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.