summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Doc/library/array.rst10
-rwxr-xr-xLib/test/test_array.py3
-rw-r--r--Modules/arraymodule.c5
3 files changed, 6 insertions, 12 deletions
diff --git a/Doc/library/array.rst b/Doc/library/array.rst
index d8e0df43e3..3e275a2620 100644
--- a/Doc/library/array.rst
+++ b/Doc/library/array.rst
@@ -21,7 +21,7 @@ defined:
+-----------+--------------------+-------------------+-----------------------+-------+
| ``'B'`` | unsigned char | int | 1 | |
+-----------+--------------------+-------------------+-----------------------+-------+
-| ``'u'`` | Py_UNICODE | Unicode character | 2 | \(1) |
+| ``'u'`` | Py_UCS4 | Unicode character | 4 | |
+-----------+--------------------+-------------------+-----------------------+-------+
| ``'h'`` | signed short | int | 2 | |
+-----------+--------------------+-------------------+-----------------------+-------+
@@ -35,9 +35,9 @@ defined:
+-----------+--------------------+-------------------+-----------------------+-------+
| ``'L'`` | unsigned long | int | 4 | |
+-----------+--------------------+-------------------+-----------------------+-------+
-| ``'q'`` | signed long long | int | 8 | \(2) |
+| ``'q'`` | signed long long | int | 8 | \(1) |
+-----------+--------------------+-------------------+-----------------------+-------+
-| ``'Q'`` | unsigned long long | int | 8 | \(2) |
+| ``'Q'`` | unsigned long long | int | 8 | \(1) |
+-----------+--------------------+-------------------+-----------------------+-------+
| ``'f'`` | float | float | 4 | |
+-----------+--------------------+-------------------+-----------------------+-------+
@@ -47,10 +47,6 @@ defined:
Notes:
(1)
- The ``'u'`` type code corresponds to Python's unicode character. On narrow
- Unicode builds this is 2-bytes, on wide builds this is 4-bytes.
-
-(2)
The ``'q'`` and ``'Q'`` type codes are available only if
the platform C compiler used to build Python supports C :c:type:`long long`,
or, on Windows, :c:type:`__int64`.
diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
index fc17b428ff..434e495f86 100755
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -1015,7 +1015,7 @@ class UnicodeTest(StringTest):
smallerexample = '\x01\u263a\x00\ufefe'
biggerexample = '\x01\u263a\x01\ufeff'
outside = str('\x33')
- minitemsize = 2
+ minitemsize = 4
def test_unicode(self):
self.assertRaises(TypeError, array.array, 'b', 'foo')
@@ -1027,6 +1027,7 @@ class UnicodeTest(StringTest):
a.fromunicode('\x11abc\xff\u1234')
s = a.tounicode()
self.assertEqual(s, '\xa0\xc2\u1234 \x11abc\xff\u1234')
+ self.assertEqual(a.itemsize, 4)
s = '\x00="\'a\\b\x80\xff\u0000\u0001\u1234'
a = array.array('u', s)
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index 09cca60eed..bb0d72b6e0 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -2593,7 +2593,7 @@ is a single character. The following type codes are defined:\n\
Type code C Type Minimum size in bytes \n\
'b' signed integer 1 \n\
'B' unsigned integer 1 \n\
- 'u' Unicode character 2 (see note) \n\
+ 'u' Unicode character 4 \n\
'h' signed integer 2 \n\
'H' unsigned integer 2 \n\
'i' signed integer 2 \n\
@@ -2605,9 +2605,6 @@ is a single character. The following type codes are defined:\n\
'f' floating point 4 \n\
'd' floating point 8 \n\
\n\
-NOTE: The 'u' type code corresponds to Python's unicode character. On \n\
-narrow builds this is 2-bytes on wide builds this is 4-bytes.\n\
-\n\
NOTE: The 'q' and 'Q' type codes are only available if the platform \n\
C compiler used to build Python supports 'long long', or, on Windows, \n\
'__int64'.\n\