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.