]> granicus.if.org Git - python/commitdiff
Issue #15814: Document planned restrictions for memoryview hashes in 3.3.1.
authorStefan Krah <skrah@bytereef.org>
Sat, 1 Sep 2012 12:34:45 +0000 (14:34 +0200)
committerStefan Krah <skrah@bytereef.org>
Sat, 1 Sep 2012 12:34:45 +0000 (14:34 +0200)
Doc/library/stdtypes.rst

index e49370394a1879a176776b1bf917578e289ce9dc..23d7fe16e675b8d7ca1b3f2d3f5f89d53c2d1e75 100644 (file)
@@ -2376,8 +2376,8 @@ copying.
       >>> data
       bytearray(b'z1spam')
 
-   Memoryviews of hashable (read-only) types are also hashable. The hash
-   is defined as ``hash(m) == hash(m.tobytes())``::
+   Memoryviews of hashable (read-only) types with formats 'B', 'b' or 'c'
+   are also hashable. The hash is defined as ``hash(m) == hash(m.tobytes())``::
 
       >>> v = memoryview(b'abcefg')
       >>> hash(v) == hash(b'abcefg')
@@ -2387,21 +2387,13 @@ copying.
       >>> hash(v[::-2]) == hash(b'abcefg'[::-2])
       True
 
-   Hashing of multi-dimensional objects is supported::
-
-      >>> buf = bytes(list(range(12)))
-      >>> x = memoryview(buf)
-      >>> y = x.cast('B', shape=[2,2,3])
-      >>> x.tolist()
-      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
-      >>> y.tolist()
-      [[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]
-      >>> hash(x) == hash(y) == hash(y.tobytes())
-      True
-
    .. versionchanged:: 3.3
-      Memoryview objects are now hashable.
+      Memoryview objects with formats 'B', 'b' or 'c' are now hashable.
 
+   .. note::
+      Hashing of memoryviews with formats other than 'B', 'b' or 'c' is
+      possible in version 3.3.0, but will raise an error in 3.3.1 in order
+      to be compatible with the new memoryview equality definition.
 
    :class:`memoryview` has several methods: