[Python-Dev] Hashable memoryviews

Nick Coghlan ncoghlan at gmail.com
Sun Nov 13 02:40:43 CET 2011


On Sun, Nov 13, 2011 at 11:19 AM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> On Sat, 12 Nov 2011 17:15:08 -0800
> Guido van Rossum <guido at python.org> wrote:
>> Aren't memoryview objects mutable? I think that the underlying memory
>> can change, so it shouldn't be hashable.
>
> Only if the original object is itself mutable, otherwise the memoryview
> is read-only.
>
> I would propose the following algorithm:
> 1) try to calculate the original object's hash; if it fails, consider
>   the memoryview unhashable (the buffer is probably mutable)
> 2) otherwise, calculate the memoryview's hash with the same algorithm
>   as bytes objects (so that it's compatible with equality comparisons)

Having a memory view be hashable if the object it references is
hashable seems analogous to the way tuples are hashable if everything
they reference is hashable, so +0 from me.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list