[Numpy-discussion] dtype comparison and hashing - bug?

David Cournapeau cournape at gmail.com
Wed Oct 20 04:46:06 EDT 2010


On Wed, Oct 20, 2010 at 5:08 PM, Matthew Brett <matthew.brett at gmail.com> wrote:
> Hi,
>
> I have just run into this oddness:
>
> In [28]: dt1 = np.dtype('f4')
>
> In [29]: dt1.str
> Out[29]: '<f4'
>
> In [30]: dt2 = dt1.newbyteorder('<')
>
> In [31]: dt2.str
> Out[31]: '<f4'
>
> In [32]: dt1 == dt2
> Out[32]: True
>
> In [33]: hash(dt1) == hash(dt2)
> Out[33]: False
>
> This is the same as:
>
> http://www.mail-archive.com/numpy-discussion@scipy.org/msg13299.html
>
> My question was - does the team still agree this is a bug?

This should have been fixed when I implemented the hashing protocol
for dtypes. This is a bug in the hashing protocol implementation, most
likely caused by "=" and "<" being considered different by the hashing
function. I will try to take a look at it (the function to fix is
_array_descr_builtin in hashdesc.c if you feel like doing some C right
now :) ).

cheers,

David



More information about the NumPy-Discussion mailing list