Comment 6 for bug 811792

Revision history for this message
Tres Seaver (tseaver) wrote :

Prior to zope.interface 3.6.4, interface objects used the '__hash__' of the base 'object' type, which used the object's address as its hash: under Python3, objects which override '__eq__' are also required to override '__hash__'.

I would say that you need either to pin zope.interface to version 3.6.1, or else require a version of nevow which doesn't attempt to hash the interface object inside its '__new__' (if using the object as a dictionary key inside its own __new__ is truly necessary, then nevow should arrange to assign the '__name__' beforehand).