Antoine Pitrou <solip...@pitrou.net> wrote:
> Stefan Krah <ste...@bytereef.org> wrote:
> > I think they necessarily have to use the same hash, since:
> > 
> > exporter = m1 ==> hash(exporter) = hash(m1)
> > m1 = m2 ==> hash(m1) = hash(m2)
> > 
> > Am I missing something?
> 
> The hash must simply be calculated using the same algorithm (which
> can even be shared as a subroutine). It's already the case for more
> complicated types:
> 
> >>> hash(1) == hash(1.0) == hash(Decimal(1)) == hash(Fraction(1))
> True

Yes, but we control those types. I was thinking more about third-party
exporters. Then again, it would be possible to publish the unified
hash function as part of the PEP.

Perhaps we could simply use:

    PyBuffer_Hash = hash(obj.tobytes())

Since tobytes() follows the logical structure, it should work for
non-contiguous and multidimensional arrays as well.


Stefan Krah


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to