I'm guessing it might be this from
https://docs.python.org/3.6/reference/datamodel.html#object.__hash__
A class that overrides __eq__() and does not define __hash__() will have
its __hash__() implicitly set to None.
Python2:
>>> class X(tuple):
... def __eq__(self, other): return False
>>> hash(X())
3527539
Python 3:
>>> class X(tuple):
... def __eq__(self, other): return False
>>> hash(X())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'X'
Interestingly, Python 2 also acts like this for *extension types* (such
as Cython cdef classes) but not for ordinary Python classes.
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.