break dict behavior. Thanks to Lucian Poston for spotting this.
svn path=/main/trunk/; revision=11473
return hash(self._key)
def __eq__(self, other):
- if isinstance(other, self.__class__):
- other_key = other._key
- else:
- other_key = other
- return self._key == other_key
+ if not isinstance(other, self.__class__):
+ # Can't safely return True in this case since
+ # if there is a hash collision then __eq__ needs
+ # to be relied upon for correct dict behavior.
+ return False
+ return self._key == other._key
def _generate_object_key(self, object):
"""