summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorStefan Krah <skrah@bytereef.org>2012-09-01 12:34:45 (GMT)
committerStefan Krah <skrah@bytereef.org>2012-09-01 12:34:45 (GMT)
commitdbf56c2ef396311e4997e4631ce9a701b0f151f2 (patch)
tree4bcfb6d6c8bf02543af2add88ba371cd2fb239df /Doc
parent49dc1d401300b671eb364599042028df399b0bf4 (diff)
downloadcpython-dbf56c2ef396311e4997e4631ce9a701b0f151f2.zip
cpython-dbf56c2ef396311e4997e4631ce9a701b0f151f2.tar.gz
cpython-dbf56c2ef396311e4997e4631ce9a701b0f151f2.tar.bz2
Issue #15814: Document planned restrictions for memoryview hashes in 3.3.1.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/stdtypes.rst22
1 files changed, 7 insertions, 15 deletions
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index e493703..23d7fe1 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -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: