summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libarray.tex
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2002-04-01 23:05:10 (GMT)
committerFred Drake <fdrake@acm.org>2002-04-01 23:05:10 (GMT)
commitd5a072f2ebb9d3fd9551560239be5e3013665280 (patch)
tree4ef39a79d13c81da260f1f70ef6709b08ef5ee3f /Doc/lib/libarray.tex
parent88955cbe1f771d7b45d1bfa862e95d443ac85cd7 (diff)
downloadcpython-d5a072f2ebb9d3fd9551560239be5e3013665280.zip
cpython-d5a072f2ebb9d3fd9551560239be5e3013665280.tar.gz
cpython-d5a072f2ebb9d3fd9551560239be5e3013665280.tar.bz2
Fix up the documentation of the type codes to give both the C and Python
types for each code, and give the actual C types. Clarified the support for slice operations and note when some TypeError exceptions are raised. This closes SF bugs 518767 and 536469.
Diffstat (limited to 'Doc/lib/libarray.tex')
-rw-r--r--Doc/lib/libarray.tex41
1 files changed, 24 insertions, 17 deletions
diff --git a/Doc/lib/libarray.tex b/Doc/lib/libarray.tex
index fcd3689..432a0f5 100644
--- a/Doc/lib/libarray.tex
+++ b/Doc/lib/libarray.tex
@@ -13,20 +13,20 @@ constrained. The type is specified at object creation time by using a
\dfn{type code}, which is a single character. The following type
codes are defined:
-\begin{tableiii}{c|l|c}{code}{Type code}{C Type}{Minimum size in bytes}
-\lineiii{'c'}{character}{1}
-\lineiii{'b'}{signed int}{1}
-\lineiii{'B'}{unsigned int}{1}
-\lineiii{'u'}{Unicode character}{2}
-\lineiii{'h'}{signed int}{2}
-\lineiii{'H'}{unsigned int}{2}
-\lineiii{'i'}{signed int}{2}
-\lineiii{'I'}{unsigned int}{2}
-\lineiii{'l'}{signed int}{4}
-\lineiii{'L'}{unsigned int}{4}
-\lineiii{'f'}{float}{4}
-\lineiii{'d'}{double}{8}
-\end{tableiii}
+\begin{tableiv}{c|l|l|c}{code}{Type code}{C Type}{Python Type}{Minimum size in bytes}
+ \lineiv{'c'}{char} {character} {1}
+ \lineiv{'b'}{signed char} {int} {1}
+ \lineiv{'B'}{unsigned char} {int} {1}
+ \lineiv{'u'}{Py_UNICODE} {Unicode character}{2}
+ \lineiv{'h'}{signed short} {int} {2}
+ \lineiv{'H'}{unsigned short}{int} {2}
+ \lineiv{'i'}{signed int} {int} {2}
+ \lineiv{'I'}{unsigned int} {long} {2}
+ \lineiv{'l'}{signed long} {int} {4}
+ \lineiv{'L'}{unsigned long} {long} {4}
+ \lineiv{'f'}{float} {float} {4}
+ \lineiv{'d'}{double} {float} {8}
+\end{tableiv}
The actual representation of values is determined by the machine
architecture (strictly speaking, by the C implementation). The actual
@@ -53,8 +53,13 @@ Obsolete alias for \function{array}.
Array objects support the ordinary sequence operations of
-indexing, slicing, concatenation, and multiplication. The
-following data items and methods are also supported:
+indexing, slicing, concatenation, and multiplication. When using
+slice assignment, the assigned value must be an array object with the
+same type code; in all other cases, \exception{TypeError} is raised.
+Array objects also implement the buffer interface, and may be used
+wherever buffer objects are supported.
+
+The following data items and methods are also supported:
\begin{memberdesc}[array]{typecode}
The typecode character used to create the array.
@@ -100,7 +105,9 @@ Return the number of occurences of \var{x} in the array.
\end{methoddesc}
\begin{methoddesc}[array]{extend}{a}
-Append array items from \var{a} to the end of the array.
+Append array items from \var{a} to the end of the array. The two
+arrays must have \emph{exactly} the same type code; if not,
+\exception{TypeError} will be raised.
\end{methoddesc}
\begin{methoddesc}[array]{fromfile}{f, n}