Joel Hedlund wrote:
Duncan Booth wrote:
I think you probably are correct. The only thing I can think that
might help is if you can catch all the situations where changes to the
dependent values might change the hash and wrap them up: before
changing the hash pop the item out of the dict, then reinsert it after
the change.
That would probably require a lot of uncomfortable signal handling,
especially for a piece of functionality I'd like to be as unobtrusive as
possible in the application.
Alternatively give up on defining hash and __eq__ for FragmentInfo and
rely on object identity instead.
Perhaps your hash function could be something like:
class HashedCache(dict):
def __init__(self, dictionary):
self.update(dictionary)
self._hash = hash(tuple(sorted(dictionary.keys())))
def __hash__(self):
return self._hash
--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list