Hi, __array__priority wasn't checked for ==, !=, <, <=, >, >= operation. I added it in the development version and someone else back-ported it to the 1.7.X branch.
So this will work with the next release of numpy. I don't know of a workaround until the next release. Fred On Thu, Jul 4, 2013 at 9:06 AM, Thomas Robitaille < thomas.robitai...@gmail.com> wrote: > Hi everyone, > > The following example: > > import numpy as np > > class SimpleArray(np.ndarray): > > __array_priority__ = 10000 > > def __new__(cls, input_array, info=None): > return np.asarray(input_array).view(cls) > > def __eq__(self, other): > return False > > a = SimpleArray(10) > print (np.int64(10) == a) > print (a == np.int64(10)) > > gives the following output > > $ python2.7 eq.py > True > False > > so that in the first case, SimpleArray.__eq__ is not called. Is this a > bug, and if so, can anyone think of a workaround? If this is expected > behavior, how do I ensure SimpleArray.__eq__ gets called in both > cases? > > Thanks, > Tom > > ps: cross-posting to stackoverflow > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion