I just wrote up a class that allows dicts to be be pb.Cacheable.
Everything works hunky-dory but only if I implement __hash__, which is
problematic for mutable objects for reasons explained thoroughly
elsewhere. The problem comes from
twisted.spread.flavors.RemoteCacheObserver:

class RemoteCacheObserver:
...
    def __hash__(self):
        """Generate a hash unique to all L{RemoteCacheObserver}s for
this broker/perspective/cached triplet
        """

        return (  (hash(self.broker) % 2**10)
                + (hash(self.perspective) % 2**10)
                + (hash(self.cached) % 2**10))

As we can see, self.cached (which is the pb.Cacheable instance) must
be hashable.

Why?

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to