Commit 29fafd87 authored by Martin v. Löwis's avatar Martin v. Löwis

Make documentation match the implementation.

parent 67d70eb9
...@@ -16,7 +16,7 @@ for which they do not apply, they will raise a Python exception. ...@@ -16,7 +16,7 @@ for which they do not apply, they will raise a Python exception.
object is written instead of the \function{repr()}. object is written instead of the \function{repr()}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyObject_HasAttrString}{PyObject *o, char *attr_name} \begin{cfuncdesc}{int}{PyObject_HasAttrString}{PyObject *o, const char *attr_name}
Returns \code{1} if \var{o} has the attribute \var{attr_name}, and Returns \code{1} if \var{o} has the attribute \var{attr_name}, and
\code{0} otherwise. This is equivalent to the Python expression \code{0} otherwise. This is equivalent to the Python expression
\samp{hasattr(\var{o}, \var{attr_name})}. This function always \samp{hasattr(\var{o}, \var{attr_name})}. This function always
...@@ -24,7 +24,7 @@ for which they do not apply, they will raise a Python exception. ...@@ -24,7 +24,7 @@ for which they do not apply, they will raise a Python exception.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyObject_GetAttrString}{PyObject *o, \begin{cfuncdesc}{PyObject*}{PyObject_GetAttrString}{PyObject *o,
char *attr_name} const char *attr_name}
Retrieve an attribute named \var{attr_name} from object \var{o}. Retrieve an attribute named \var{attr_name} from object \var{o}.
Returns the attribute value on success, or \NULL{} on failure. Returns the attribute value on success, or \NULL{} on failure.
This is the equivalent of the Python expression This is the equivalent of the Python expression
...@@ -50,7 +50,7 @@ for which they do not apply, they will raise a Python exception. ...@@ -50,7 +50,7 @@ for which they do not apply, they will raise a Python exception.
\begin{cfuncdesc}{int}{PyObject_SetAttrString}{PyObject *o, \begin{cfuncdesc}{int}{PyObject_SetAttrString}{PyObject *o,
char *attr_name, PyObject *v} const char *attr_name, PyObject *v}
Set the value of the attribute named \var{attr_name}, for object Set the value of the attribute named \var{attr_name}, for object
\var{o}, to the value \var{v}. Returns \code{-1} on failure. This \var{o}, to the value \var{v}. Returns \code{-1} on failure. This
is the equivalent of the Python statement is the equivalent of the Python statement
...@@ -67,7 +67,7 @@ for which they do not apply, they will raise a Python exception. ...@@ -67,7 +67,7 @@ for which they do not apply, they will raise a Python exception.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyObject_DelAttrString}{PyObject *o, char *attr_name} \begin{cfuncdesc}{int}{PyObject_DelAttrString}{PyObject *o, const char *attr_name}
Delete attribute named \var{attr_name}, for object \var{o}. Returns Delete attribute named \var{attr_name}, for object \var{o}. Returns
\code{-1} on failure. This is the equivalent of the Python \code{-1} on failure. This is the equivalent of the Python
statement: \samp{del \var{o}.\var{attr_name}}. statement: \samp{del \var{o}.\var{attr_name}}.
...@@ -301,7 +301,7 @@ determination. ...@@ -301,7 +301,7 @@ determination.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyObject_Hash}{PyObject *o} \begin{cfuncdesc}{long}{PyObject_Hash}{PyObject *o}
Compute and return the hash value of an object \var{o}. On failure, Compute and return the hash value of an object \var{o}. On failure,
return \code{-1}. This is the equivalent of the Python expression return \code{-1}. This is the equivalent of the Python expression
\samp{hash(\var{o})}.\bifuncindex{hash} \samp{hash(\var{o})}.\bifuncindex{hash}
...@@ -340,8 +340,8 @@ determination. ...@@ -340,8 +340,8 @@ determination.
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyObject_Length}{PyObject *o} \begin{cfuncdesc}{Py_ssize_t}{PyObject_Length}{PyObject *o}
\cfuncline{int}{PyObject_Size}{PyObject *o} \cfuncline{Py_ssize_t}{PyObject_Size}{PyObject *o}
Return the length of object \var{o}. If the object \var{o} provides Return the length of object \var{o}. If the object \var{o} provides
either the sequence and mapping protocols, the sequence length is either the sequence and mapping protocols, the sequence length is
returned. On error, \code{-1} is returned. This is the equivalent returned. On error, \code{-1} is returned. This is the equivalent
...@@ -697,14 +697,14 @@ determination. ...@@ -697,14 +697,14 @@ determination.
\code{0} otherwise. This function always succeeds. \code{0} otherwise. This function always succeeds.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_Size}{PyObject *o} \begin{cfuncdesc}{Py_ssize_t}{PySequence_Size}{PyObject *o}
Returns the number of objects in sequence \var{o} on success, and Returns the number of objects in sequence \var{o} on success, and
\code{-1} on failure. For objects that do not provide sequence \code{-1} on failure. For objects that do not provide sequence
protocol, this is equivalent to the Python expression protocol, this is equivalent to the Python expression
\samp{len(\var{o})}.\bifuncindex{len} \samp{len(\var{o})}.\bifuncindex{len}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_Length}{PyObject *o} \begin{cfuncdesc}{Py_ssize_t}{PySequence_Length}{PyObject *o}
Alternate name for \cfunction{PySequence_Size()}. Alternate name for \cfunction{PySequence_Size()}.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -715,7 +715,7 @@ determination. ...@@ -715,7 +715,7 @@ determination.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PySequence_Repeat}{PyObject *o, int count} \begin{cfuncdesc}{PyObject*}{PySequence_Repeat}{PyObject *o, Py_ssize_t count}
Return the result of repeating sequence object \var{o} \var{count} Return the result of repeating sequence object \var{o} \var{count}
times, or \NULL{} on failure. This is the equivalent of the Python times, or \NULL{} on failure. This is the equivalent of the Python
expression \samp{\var{o} * \var{count}}. expression \samp{\var{o} * \var{count}}.
...@@ -730,7 +730,7 @@ determination. ...@@ -730,7 +730,7 @@ determination.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PySequence_InPlaceRepeat}{PyObject *o, int count} \begin{cfuncdesc}{PyObject*}{PySequence_InPlaceRepeat}{PyObject *o, Py_ssize_t count}
Return the result of repeating sequence object \var{o} \var{count} Return the result of repeating sequence object \var{o} \var{count}
times, or \NULL{} on failure. The operation is done \emph{in-place} times, or \NULL{} on failure. The operation is done \emph{in-place}
when \var{o} supports it. This is the equivalent of the Python when \var{o} supports it. This is the equivalent of the Python
...@@ -738,41 +738,41 @@ determination. ...@@ -738,41 +738,41 @@ determination.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PySequence_GetItem}{PyObject *o, int i} \begin{cfuncdesc}{PyObject*}{PySequence_GetItem}{PyObject *o, Py_ssize_t i}
Return the \var{i}th element of \var{o}, or \NULL{} on failure. Return the \var{i}th element of \var{o}, or \NULL{} on failure.
This is the equivalent of the Python expression This is the equivalent of the Python expression
\samp{\var{o}[\var{i}]}. \samp{\var{o}[\var{i}]}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PySequence_GetSlice}{PyObject *o, int i1, int i2} \begin{cfuncdesc}{PyObject*}{PySequence_GetSlice}{PyObject *o, Py_ssize_t i1, Py_ssize_t i2}
Return the slice of sequence object \var{o} between \var{i1} and Return the slice of sequence object \var{o} between \var{i1} and
\var{i2}, or \NULL{} on failure. This is the equivalent of the \var{i2}, or \NULL{} on failure. This is the equivalent of the
Python expression \samp{\var{o}[\var{i1}:\var{i2}]}. Python expression \samp{\var{o}[\var{i1}:\var{i2}]}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_SetItem}{PyObject *o, int i, PyObject *v} \begin{cfuncdesc}{int}{PySequence_SetItem}{PyObject *o, Py_ssize_t i, PyObject *v}
Assign object \var{v} to the \var{i}th element of \var{o}. Returns Assign object \var{v} to the \var{i}th element of \var{o}. Returns
\code{-1} on failure. This is the equivalent of the Python \code{-1} on failure. This is the equivalent of the Python
statement \samp{\var{o}[\var{i}] = \var{v}}. This function \emph{does not} statement \samp{\var{o}[\var{i}] = \var{v}}. This function \emph{does not}
steal a reference to \var{v}. steal a reference to \var{v}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_DelItem}{PyObject *o, int i} \begin{cfuncdesc}{int}{PySequence_DelItem}{PyObject *o, Py_ssize_t i}
Delete the \var{i}th element of object \var{o}. Returns \code{-1} Delete the \var{i}th element of object \var{o}. Returns \code{-1}
on failure. This is the equivalent of the Python statement on failure. This is the equivalent of the Python statement
\samp{del \var{o}[\var{i}]}. \samp{del \var{o}[\var{i}]}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_SetSlice}{PyObject *o, int i1, \begin{cfuncdesc}{int}{PySequence_SetSlice}{PyObject *o, Py_ssize_t i1,
int i2, PyObject *v} Py_ssize_t i2, PyObject *v}
Assign the sequence object \var{v} to the slice in sequence object Assign the sequence object \var{v} to the slice in sequence object
\var{o} from \var{i1} to \var{i2}. This is the equivalent of the \var{o} from \var{i1} to \var{i2}. This is the equivalent of the
Python statement \samp{\var{o}[\var{i1}:\var{i2}] = \var{v}}. Python statement \samp{\var{o}[\var{i1}:\var{i2}] = \var{v}}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_DelSlice}{PyObject *o, int i1, int i2} \begin{cfuncdesc}{int}{PySequence_DelSlice}{PyObject *o, Py_ssize_t i1, Py_ssize_t i2}
Delete the slice in sequence object \var{o} from \var{i1} to Delete the slice in sequence object \var{o} from \var{i1} to
\var{i2}. Returns \code{-1} on failure. This is the equivalent of \var{i2}. Returns \code{-1} on failure. This is the equivalent of
the Python statement \samp{del \var{o}[\var{i1}:\var{i2}]}. the Python statement \samp{del \var{o}[\var{i1}:\var{i2}]}.
...@@ -821,7 +821,7 @@ determination. ...@@ -821,7 +821,7 @@ determination.
text. text.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PySequence_Fast_GET_ITEM}{PyObject *o, int i} \begin{cfuncdesc}{PyObject*}{PySequence_Fast_GET_ITEM}{PyObject *o, Py_ssize_t i}
Return the \var{i}th element of \var{o}, assuming that \var{o} was Return the \var{i}th element of \var{o}, assuming that \var{o} was
returned by \cfunction{PySequence_Fast()}, \var{o} is not \NULL, returned by \cfunction{PySequence_Fast()}, \var{o} is not \NULL,
and that \var{i} is within bounds. and that \var{i} is within bounds.
...@@ -834,7 +834,7 @@ determination. ...@@ -834,7 +834,7 @@ determination.
\versionadded{2.4} \versionadded{2.4}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PySequence_ITEM}{PyObject *o, int i} \begin{cfuncdesc}{PyObject*}{PySequence_ITEM}{PyObject *o, Py_ssize_t i}
Return the \var{i}th element of \var{o} or \NULL{} on failure. Return the \var{i}th element of \var{o} or \NULL{} on failure.
Macro form of \cfunction{PySequence_GetItem()} but without checking Macro form of \cfunction{PySequence_GetItem()} but without checking
that \cfunction{PySequence_Check(\var{o})} is true and without that \cfunction{PySequence_Check(\var{o})} is true and without
...@@ -860,7 +860,7 @@ determination. ...@@ -860,7 +860,7 @@ determination.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyMapping_Length}{PyObject *o} \begin{cfuncdesc}{Py_ssize_t}{PyMapping_Length}{PyObject *o}
Returns the number of keys in object \var{o} on success, and Returns the number of keys in object \var{o} on success, and
\code{-1} on failure. For objects that do not provide mapping \code{-1} on failure. For objects that do not provide mapping
protocol, this is equivalent to the Python expression protocol, this is equivalent to the Python expression
...@@ -986,7 +986,7 @@ else { ...@@ -986,7 +986,7 @@ else {
\begin{cfuncdesc}{int}{PyObject_AsCharBuffer}{PyObject *obj, \begin{cfuncdesc}{int}{PyObject_AsCharBuffer}{PyObject *obj,
const char **buffer, const char **buffer,
int *buffer_len} Py_ssize_t *buffer_len}
Returns a pointer to a read-only memory location useable as character- Returns a pointer to a read-only memory location useable as character-
based input. The \var{obj} argument must support the single-segment based input. The \var{obj} argument must support the single-segment
character buffer interface. On success, returns \code{0}, sets character buffer interface. On success, returns \code{0}, sets
...@@ -997,7 +997,7 @@ else { ...@@ -997,7 +997,7 @@ else {
\begin{cfuncdesc}{int}{PyObject_AsReadBuffer}{PyObject *obj, \begin{cfuncdesc}{int}{PyObject_AsReadBuffer}{PyObject *obj,
const void **buffer, const void **buffer,
int *buffer_len} Py_ssize_t *buffer_len}
Returns a pointer to a read-only memory location containing Returns a pointer to a read-only memory location containing
arbitrary data. The \var{obj} argument must support the arbitrary data. The \var{obj} argument must support the
single-segment readable buffer interface. On success, returns single-segment readable buffer interface. On success, returns
...@@ -1015,7 +1015,7 @@ else { ...@@ -1015,7 +1015,7 @@ else {
\begin{cfuncdesc}{int}{PyObject_AsWriteBuffer}{PyObject *obj, \begin{cfuncdesc}{int}{PyObject_AsWriteBuffer}{PyObject *obj,
void **buffer, void **buffer,
int *buffer_len} Py_ssize_t *buffer_len}
Returns a pointer to a writeable memory location. The \var{obj} Returns a pointer to a writeable memory location. The \var{obj}
argument must support the single-segment, character buffer argument must support the single-segment, character buffer
interface. On success, returns \code{0}, sets \var{buffer} to the interface. On success, returns \code{0}, sets \var{buffer} to the
......
...@@ -65,7 +65,7 @@ This section describes Python type objects and the singleton object ...@@ -65,7 +65,7 @@ This section describes Python type objects and the singleton object
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyType_GenericAlloc}{PyTypeObject *type, \begin{cfuncdesc}{PyObject*}{PyType_GenericAlloc}{PyTypeObject *type,
int nitems} Py_ssize_t nitems}
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
...@@ -179,7 +179,7 @@ There is no \cfunction{PyNone_Check()} function for the same reason. ...@@ -179,7 +179,7 @@ There is no \cfunction{PyNone_Check()} function for the same reason.
\versionadded{2.3} \versionadded{2.3}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{unsigned long long}{PyInt_AsUnsignedLongLongMask}{PyObject *io} \begin{cfuncdesc}{unsigned PY_LONG_LONG}{PyInt_AsUnsignedLongLongMask}{PyObject *io}
Will first attempt to cast the object to a \ctype{PyIntObject} or Will first attempt to cast the object to a \ctype{PyIntObject} or
\ctype{PyLongObject}, if it is not already one, and then return its \ctype{PyLongObject}, if it is not already one, and then return its
value as unsigned long long, without checking for overflow. value as unsigned long long, without checking for overflow.
...@@ -268,12 +268,12 @@ booleans. The following macros are available, however. ...@@ -268,12 +268,12 @@ booleans. The following macros are available, however.
long}, or \NULL{} on failure. long}, or \NULL{} on failure.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyLong_FromLongLong}{long long v} \begin{cfuncdesc}{PyObject*}{PyLong_FromLongLong}{PY_LONG_LONG v}
Return a new \ctype{PyLongObject} object from a C \ctype{long long}, Return a new \ctype{PyLongObject} object from a C \ctype{long long},
or \NULL{} on failure. or \NULL{} on failure.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyLong_FromUnsignedLongLong}{unsigned long long v} \begin{cfuncdesc}{PyObject*}{PyLong_FromUnsignedLongLong}{unsigned PY_LONG_LONG v}
Return a new \ctype{PyLongObject} object from a C \ctype{unsigned Return a new \ctype{PyLongObject} object from a C \ctype{unsigned
long long}, or \NULL{} on failure. long long}, or \NULL{} on failure.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -300,7 +300,7 @@ booleans. The following macros are available, however. ...@@ -300,7 +300,7 @@ booleans. The following macros are available, however.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyLong_FromUnicode}{Py_UNICODE *u, \begin{cfuncdesc}{PyObject*}{PyLong_FromUnicode}{Py_UNICODE *u,
int length, int base} Py_ssize_t length, int base}
Convert a sequence of Unicode digits to a Python long integer Convert a sequence of Unicode digits to a Python long integer
value. The first parameter, \var{u}, points to the first character value. The first parameter, \var{u}, points to the first character
of the Unicode string, \var{length} gives the number of characters, of the Unicode string, \var{length} gives the number of characters,
...@@ -333,14 +333,14 @@ booleans. The following macros are available, however. ...@@ -333,14 +333,14 @@ booleans. The following macros are available, however.
\withsubitem{(built-in exception)}{\ttindex{OverflowError}} \withsubitem{(built-in exception)}{\ttindex{OverflowError}}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{long long}{PyLong_AsLongLong}{PyObject *pylong} \begin{cfuncdesc}{PY_LONG_LONG}{PyLong_AsLongLong}{PyObject *pylong}
Return a C \ctype{long long} from a Python long integer. If Return a C \ctype{long long} from a Python long integer. If
\var{pylong} cannot be represented as a \ctype{long long}, an \var{pylong} cannot be represented as a \ctype{long long}, an
\exception{OverflowError} will be raised. \exception{OverflowError} will be raised.
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{unsigned long long}{PyLong_AsUnsignedLongLong}{PyObject \begin{cfuncdesc}{unsigned PY_LONG_LONG}{PyLong_AsUnsignedLongLong}{PyObject
*pylong} *pylong}
Return a C \ctype{unsigned long long} from a Python long integer. Return a C \ctype{unsigned long long} from a Python long integer.
If \var{pylong} cannot be represented as an \ctype{unsigned long If \var{pylong} cannot be represented as an \ctype{unsigned long
...@@ -582,7 +582,7 @@ parameter and are called with a non-string parameter. ...@@ -582,7 +582,7 @@ parameter and are called with a non-string parameter.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyString_FromStringAndSize}{const char *v, \begin{cfuncdesc}{PyObject*}{PyString_FromStringAndSize}{const char *v,
int len} Py_ssize_t len}
Return a new string object with the value \var{v} and length Return a new string object with the value \var{v} and length
\var{len} on success, and \NULL{} on failure. If \var{v} is \var{len} on success, and \NULL{} on failure. If \var{v} is
\NULL{}, the contents of the string are uninitialized. \NULL{}, the contents of the string are uninitialized.
...@@ -601,6 +601,7 @@ parameter and are called with a non-string parameter. ...@@ -601,6 +601,7 @@ parameter and are called with a non-string parameter.
\lineiii{\%c}{int}{A single character, represented as an C int.} \lineiii{\%c}{int}{A single character, represented as an C int.}
\lineiii{\%d}{int}{Exactly equivalent to \code{printf("\%d")}.} \lineiii{\%d}{int}{Exactly equivalent to \code{printf("\%d")}.}
\lineiii{\%ld}{long}{Exactly equivalent to \code{printf("\%ld")}.} \lineiii{\%ld}{long}{Exactly equivalent to \code{printf("\%ld")}.}
\lineiii{\%zd}{long}{Exactly equivalent to \code{printf("\%zd")}.}
\lineiii{\%i}{int}{Exactly equivalent to \code{printf("\%i")}.} \lineiii{\%i}{int}{Exactly equivalent to \code{printf("\%i")}.}
\lineiii{\%x}{int}{Exactly equivalent to \code{printf("\%x")}.} \lineiii{\%x}{int}{Exactly equivalent to \code{printf("\%x")}.}
\lineiii{\%s}{char*}{A null-terminated C character array.} \lineiii{\%s}{char*}{A null-terminated C character array.}
...@@ -617,11 +618,11 @@ parameter and are called with a non-string parameter. ...@@ -617,11 +618,11 @@ parameter and are called with a non-string parameter.
exactly two arguments. exactly two arguments.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyString_Size}{PyObject *string} \begin{cfuncdesc}{Py_ssize_t}{PyString_Size}{PyObject *string}
Return the length of the string in string object \var{string}. Return the length of the string in string object \var{string}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyString_GET_SIZE}{PyObject *string} \begin{cfuncdesc}{Py_ssize_t}{PyString_GET_SIZE}{PyObject *string}
Macro form of \cfunction{PyString_Size()} but without error Macro form of \cfunction{PyString_Size()} but without error
checking. checking.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -647,7 +648,7 @@ parameter and are called with a non-string parameter. ...@@ -647,7 +648,7 @@ parameter and are called with a non-string parameter.
\begin{cfuncdesc}{int}{PyString_AsStringAndSize}{PyObject *obj, \begin{cfuncdesc}{int}{PyString_AsStringAndSize}{PyObject *obj,
char **buffer, char **buffer,
int *length} Py_ssize_t *length}
Return a NUL-terminated representation of the contents of the Return a NUL-terminated representation of the contents of the
object \var{obj} through the output variables \var{buffer} and object \var{obj} through the output variables \var{buffer} and
\var{length}. \var{length}.
...@@ -686,7 +687,7 @@ parameter and are called with a non-string parameter. ...@@ -686,7 +687,7 @@ parameter and are called with a non-string parameter.
the reference count of \var{newpart}. the reference count of \var{newpart}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{_PyString_Resize}{PyObject **string, int newsize} \begin{cfuncdesc}{int}{_PyString_Resize}{PyObject **string, Py_ssize_t newsize}
A way to resize a string object even though it is ``immutable''. A way to resize a string object even though it is ``immutable''.
Only use this to build up a brand new string object; don't use this Only use this to build up a brand new string object; don't use this
if the string may already be known in other parts of the code. It if the string may already be known in other parts of the code. It
...@@ -730,7 +731,7 @@ parameter and are called with a non-string parameter. ...@@ -730,7 +731,7 @@ parameter and are called with a non-string parameter.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyString_Decode}{const char *s, \begin{cfuncdesc}{PyObject*}{PyString_Decode}{const char *s,
int size, Py_ssize_t size,
const char *encoding, const char *encoding,
const char *errors} const char *errors}
Create an object by decoding \var{size} bytes of the encoded Create an object by decoding \var{size} bytes of the encoded
...@@ -754,7 +755,7 @@ parameter and are called with a non-string parameter. ...@@ -754,7 +755,7 @@ parameter and are called with a non-string parameter.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyString_Encode}{const char *s, \begin{cfuncdesc}{PyObject*}{PyString_Encode}{const char *s,
int size, Py_ssize_t size,
const char *encoding, const char *encoding,
const char *errors} const char *errors}
Encode the \ctype{char} buffer of the given size by passing it to Encode the \ctype{char} buffer of the given size by passing it to
...@@ -829,12 +830,12 @@ checks and to access internal read-only data of Unicode objects: ...@@ -829,12 +830,12 @@ checks and to access internal read-only data of Unicode objects:
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyUnicode_GET_SIZE}{PyObject *o} \begin{cfuncdesc}{Py_ssize_t}{PyUnicode_GET_SIZE}{PyObject *o}
Return the size of the object. \var{o} has to be a Return the size of the object. \var{o} has to be a
\ctype{PyUnicodeObject} (not checked). \ctype{PyUnicodeObject} (not checked).
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyUnicode_GET_DATA_SIZE}{PyObject *o} \begin{cfuncdesc}{Py_ssize_t}{PyUnicode_GET_DATA_SIZE}{PyObject *o}
Return the size of the object's internal buffer in bytes. \var{o} Return the size of the object's internal buffer in bytes. \var{o}
has to be a \ctype{PyUnicodeObject} (not checked). has to be a \ctype{PyUnicodeObject} (not checked).
\end{cfuncdesc} \end{cfuncdesc}
...@@ -937,7 +938,7 @@ To create Unicode objects and access their basic sequence properties, ...@@ -937,7 +938,7 @@ To create Unicode objects and access their basic sequence properties,
use these APIs: use these APIs:
\begin{cfuncdesc}{PyObject*}{PyUnicode_FromUnicode}{const Py_UNICODE *u, \begin{cfuncdesc}{PyObject*}{PyUnicode_FromUnicode}{const Py_UNICODE *u,
int size} Py_ssize_t size}
Create a Unicode Object from the Py_UNICODE buffer \var{u} of the Create a Unicode Object from the Py_UNICODE buffer \var{u} of the
given size. \var{u} may be \NULL{} which causes the contents to be given size. \var{u} may be \NULL{} which causes the contents to be
undefined. It is the user's responsibility to fill in the needed undefined. It is the user's responsibility to fill in the needed
...@@ -953,7 +954,7 @@ use these APIs: ...@@ -953,7 +954,7 @@ use these APIs:
object. object.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyUnicode_GetSize}{PyObject *unicode} \begin{cfuncdesc}{Py_ssize_t}{PyUnicode_GetSize}{PyObject *unicode}
Return the length of the Unicode object. Return the length of the Unicode object.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -996,14 +997,14 @@ following functions. Support is optimized if Python's own ...@@ -996,14 +997,14 @@ following functions. Support is optimized if Python's own
\ctype{Py_UNICODE} type is identical to the system's \ctype{wchar_t}. \ctype{Py_UNICODE} type is identical to the system's \ctype{wchar_t}.
\begin{cfuncdesc}{PyObject*}{PyUnicode_FromWideChar}{const wchar_t *w, \begin{cfuncdesc}{PyObject*}{PyUnicode_FromWideChar}{const wchar_t *w,
int size} Py_ssize_t size}
Create a Unicode object from the \ctype{wchar_t} buffer \var{w} of Create a Unicode object from the \ctype{wchar_t} buffer \var{w} of
the given size. Return \NULL{} on failure. the given size. Return \NULL{} on failure.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyUnicode_AsWideChar}{PyUnicodeObject *unicode, \begin{cfuncdesc}{Py_ssize_t}{PyUnicode_AsWideChar}{PyUnicodeObject *unicode,
wchar_t *w, wchar_t *w,
int size} Py_ssize_t size}
Copy the Unicode object contents into the \ctype{wchar_t} buffer Copy the Unicode object contents into the \ctype{wchar_t} buffer
\var{w}. At most \var{size} \ctype{wchar_t} characters are copied \var{w}. At most \var{size} \ctype{wchar_t} characters are copied
(excluding a possibly trailing 0-termination character). Return (excluding a possibly trailing 0-termination character). Return
...@@ -1045,7 +1046,7 @@ following generic ones are documented for simplicity. ...@@ -1045,7 +1046,7 @@ following generic ones are documented for simplicity.
These are the generic codec APIs: These are the generic codec APIs:
\begin{cfuncdesc}{PyObject*}{PyUnicode_Decode}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_Decode}{const char *s,
int size, Py_ssize_t size,
const char *encoding, const char *encoding,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the encoded Create a Unicode object by decoding \var{size} bytes of the encoded
...@@ -1057,7 +1058,7 @@ These are the generic codec APIs: ...@@ -1057,7 +1058,7 @@ These are the generic codec APIs:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_Encode}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_Encode}{const Py_UNICODE *s,
int size, Py_ssize_t size,
const char *encoding, const char *encoding,
const char *errors} const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size and return Encode the \ctype{Py_UNICODE} buffer of the given size and return
...@@ -1083,7 +1084,7 @@ These are the generic codec APIs: ...@@ -1083,7 +1084,7 @@ These are the generic codec APIs:
These are the UTF-8 codec APIs: These are the UTF-8 codec APIs:
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF8}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF8}{const char *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the UTF-8 Create a Unicode object by decoding \var{size} bytes of the UTF-8
encoded string \var{s}. Return \NULL{} if an exception was raised encoded string \var{s}. Return \NULL{} if an exception was raised
...@@ -1091,9 +1092,9 @@ These are the UTF-8 codec APIs: ...@@ -1091,9 +1092,9 @@ These are the UTF-8 codec APIs:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF8Stateful}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF8Stateful}{const char *s,
int size, Py_ssize_t size,
const char *errors, const char *errors,
int *consumed} Py_ssize_t *consumed}
If \var{consumed} is \NULL{}, behave like \cfunction{PyUnicode_DecodeUTF8()}. If \var{consumed} is \NULL{}, behave like \cfunction{PyUnicode_DecodeUTF8()}.
If \var{consumed} is not \NULL{}, trailing incomplete UTF-8 byte sequences If \var{consumed} is not \NULL{}, trailing incomplete UTF-8 byte sequences
will not be treated as an error. Those bytes will not be decoded and the will not be treated as an error. Those bytes will not be decoded and the
...@@ -1102,7 +1103,7 @@ These are the UTF-8 codec APIs: ...@@ -1102,7 +1103,7 @@ These are the UTF-8 codec APIs:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeUTF8}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeUTF8}{const Py_UNICODE *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size using UTF-8 Encode the \ctype{Py_UNICODE} buffer of the given size using UTF-8
and return a Python string object. Return \NULL{} if an exception and return a Python string object. Return \NULL{} if an exception
...@@ -1120,7 +1121,7 @@ These are the UTF-8 codec APIs: ...@@ -1120,7 +1121,7 @@ These are the UTF-8 codec APIs:
These are the UTF-16 codec APIs: These are the UTF-16 codec APIs:
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF16}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF16}{const char *s,
int size, Py_ssize_t size,
const char *errors, const char *errors,
int *byteorder} int *byteorder}
Decode \var{length} bytes from a UTF-16 encoded buffer string and Decode \var{length} bytes from a UTF-16 encoded buffer string and
...@@ -1147,10 +1148,10 @@ These are the UTF-16 codec APIs: ...@@ -1147,10 +1148,10 @@ These are the UTF-16 codec APIs:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF16Stateful}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUTF16Stateful}{const char *s,
int size, Py_ssize_t size,
const char *errors, const char *errors,
int *byteorder, int *byteorder,
int *consumed} Py_ssize_t *consumed}
If \var{consumed} is \NULL{}, behave like If \var{consumed} is \NULL{}, behave like
\cfunction{PyUnicode_DecodeUTF16()}. If \var{consumed} is not \NULL{}, \cfunction{PyUnicode_DecodeUTF16()}. If \var{consumed} is not \NULL{},
\cfunction{PyUnicode_DecodeUTF16Stateful()} will not treat trailing incomplete \cfunction{PyUnicode_DecodeUTF16Stateful()} will not treat trailing incomplete
...@@ -1161,7 +1162,7 @@ These are the UTF-16 codec APIs: ...@@ -1161,7 +1162,7 @@ These are the UTF-16 codec APIs:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeUTF16}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeUTF16}{const Py_UNICODE *s,
int size, Py_ssize_t size,
const char *errors, const char *errors,
int byteorder} int byteorder}
Return a Python string object holding the UTF-16 encoded value of Return a Python string object holding the UTF-16 encoded value of
...@@ -1198,7 +1199,7 @@ These are the UTF-16 codec APIs: ...@@ -1198,7 +1199,7 @@ These are the UTF-16 codec APIs:
These are the ``Unicode Escape'' codec APIs: These are the ``Unicode Escape'' codec APIs:
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUnicodeEscape}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeUnicodeEscape}{const char *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the Create a Unicode object by decoding \var{size} bytes of the
Unicode-Escape encoded string \var{s}. Return \NULL{} if an Unicode-Escape encoded string \var{s}. Return \NULL{} if an
...@@ -1206,8 +1207,7 @@ These are the ``Unicode Escape'' codec APIs: ...@@ -1206,8 +1207,7 @@ These are the ``Unicode Escape'' codec APIs:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeUnicodeEscape}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeUnicodeEscape}{const Py_UNICODE *s,
int size, Py_ssize_t size}
const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size using Encode the \ctype{Py_UNICODE} buffer of the given size using
Unicode-Escape and return a Python string object. Return \NULL{} Unicode-Escape and return a Python string object. Return \NULL{}
if an exception was raised by the codec. if an exception was raised by the codec.
...@@ -1224,7 +1224,7 @@ These are the ``Unicode Escape'' codec APIs: ...@@ -1224,7 +1224,7 @@ These are the ``Unicode Escape'' codec APIs:
These are the ``Raw Unicode Escape'' codec APIs: These are the ``Raw Unicode Escape'' codec APIs:
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeRawUnicodeEscape}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeRawUnicodeEscape}{const char *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the Create a Unicode object by decoding \var{size} bytes of the
Raw-Unicode-Escape encoded string \var{s}. Return \NULL{} if an Raw-Unicode-Escape encoded string \var{s}. Return \NULL{} if an
...@@ -1232,7 +1232,7 @@ These are the ``Raw Unicode Escape'' codec APIs: ...@@ -1232,7 +1232,7 @@ These are the ``Raw Unicode Escape'' codec APIs:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeRawUnicodeEscape}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeRawUnicodeEscape}{const Py_UNICODE *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size using Encode the \ctype{Py_UNICODE} buffer of the given size using
Raw-Unicode-Escape and return a Python string object. Return Raw-Unicode-Escape and return a Python string object. Return
...@@ -1252,7 +1252,7 @@ Latin-1 corresponds to the first 256 Unicode ordinals and only these ...@@ -1252,7 +1252,7 @@ Latin-1 corresponds to the first 256 Unicode ordinals and only these
are accepted by the codecs during encoding. are accepted by the codecs during encoding.
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeLatin1}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeLatin1}{const char *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the Latin-1 Create a Unicode object by decoding \var{size} bytes of the Latin-1
encoded string \var{s}. Return \NULL{} if an exception was raised encoded string \var{s}. Return \NULL{} if an exception was raised
...@@ -1260,7 +1260,7 @@ are accepted by the codecs during encoding. ...@@ -1260,7 +1260,7 @@ are accepted by the codecs during encoding.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeLatin1}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeLatin1}{const Py_UNICODE *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size using Encode the \ctype{Py_UNICODE} buffer of the given size using
Latin-1 and return a Python string object. Return \NULL{} if an Latin-1 and return a Python string object. Return \NULL{} if an
...@@ -1279,7 +1279,7 @@ These are the \ASCII{} codec APIs. Only 7-bit \ASCII{} data is ...@@ -1279,7 +1279,7 @@ These are the \ASCII{} codec APIs. Only 7-bit \ASCII{} data is
accepted. All other codes generate errors. accepted. All other codes generate errors.
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeASCII}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeASCII}{const char *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the Create a Unicode object by decoding \var{size} bytes of the
\ASCII{} encoded string \var{s}. Return \NULL{} if an exception \ASCII{} encoded string \var{s}. Return \NULL{} if an exception
...@@ -1287,7 +1287,7 @@ accepted. All other codes generate errors. ...@@ -1287,7 +1287,7 @@ accepted. All other codes generate errors.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeASCII}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeASCII}{const Py_UNICODE *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size using Encode the \ctype{Py_UNICODE} buffer of the given size using
\ASCII{} and return a Python string object. Return \NULL{} if an \ASCII{} and return a Python string object. Return \NULL{} if an
...@@ -1327,7 +1327,7 @@ to contain those mappings which map characters to different code ...@@ -1327,7 +1327,7 @@ to contain those mappings which map characters to different code
points. points.
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeCharmap}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeCharmap}{const char *s,
int size, Py_ssize_t size,
PyObject *mapping, PyObject *mapping,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the encoded Create a Unicode object by decoding \var{size} bytes of the encoded
...@@ -1341,7 +1341,7 @@ points. ...@@ -1341,7 +1341,7 @@ points.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeCharmap}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeCharmap}{const Py_UNICODE *s,
int size, Py_ssize_t size,
PyObject *mapping, PyObject *mapping,
const char *errors} const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size using the Encode the \ctype{Py_UNICODE} buffer of the given size using the
...@@ -1360,7 +1360,7 @@ points. ...@@ -1360,7 +1360,7 @@ points.
The following codec API is special in that maps Unicode to Unicode. The following codec API is special in that maps Unicode to Unicode.
\begin{cfuncdesc}{PyObject*}{PyUnicode_TranslateCharmap}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_TranslateCharmap}{const Py_UNICODE *s,
int size, Py_ssize_t size,
PyObject *table, PyObject *table,
const char *errors} const char *errors}
Translate a \ctype{Py_UNICODE} buffer of the given length by Translate a \ctype{Py_UNICODE} buffer of the given length by
...@@ -1386,7 +1386,7 @@ just one. The target encoding is defined by the user settings on the ...@@ -1386,7 +1386,7 @@ just one. The target encoding is defined by the user settings on the
machine running the codec. machine running the codec.
\begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeMBCS}{const char *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_DecodeMBCS}{const char *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Create a Unicode object by decoding \var{size} bytes of the MBCS Create a Unicode object by decoding \var{size} bytes of the MBCS
encoded string \var{s}. Return \NULL{} if an exception was encoded string \var{s}. Return \NULL{} if an exception was
...@@ -1394,7 +1394,7 @@ machine running the codec. ...@@ -1394,7 +1394,7 @@ machine running the codec.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeMBCS}{const Py_UNICODE *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_EncodeMBCS}{const Py_UNICODE *s,
int size, Py_ssize_t size,
const char *errors} const char *errors}
Encode the \ctype{Py_UNICODE} buffer of the given size using MBCS Encode the \ctype{Py_UNICODE} buffer of the given size using MBCS
and return a Python string object. Return \NULL{} if an exception and return a Python string object. Return \NULL{} if an exception
...@@ -1424,7 +1424,7 @@ They all return \NULL{} or \code{-1} if an exception occurs. ...@@ -1424,7 +1424,7 @@ They all return \NULL{} or \code{-1} if an exception occurs.
\begin{cfuncdesc}{PyObject*}{PyUnicode_Split}{PyObject *s, \begin{cfuncdesc}{PyObject*}{PyUnicode_Split}{PyObject *s,
PyObject *sep, PyObject *sep,
int maxsplit} Py_ssize_t maxsplit}
Split a string giving a list of Unicode strings. If sep is \NULL{}, Split a string giving a list of Unicode strings. If sep is \NULL{},
splitting will be done at all whitespace substrings. Otherwise, splitting will be done at all whitespace substrings. Otherwise,
splits occur at the given separator. At most \var{maxsplit} splits splits occur at the given separator. At most \var{maxsplit} splits
...@@ -1466,8 +1466,8 @@ They all return \NULL{} or \code{-1} if an exception occurs. ...@@ -1466,8 +1466,8 @@ They all return \NULL{} or \code{-1} if an exception occurs.
\begin{cfuncdesc}{int}{PyUnicode_Tailmatch}{PyObject *str, \begin{cfuncdesc}{int}{PyUnicode_Tailmatch}{PyObject *str,
PyObject *substr, PyObject *substr,
int start, Py_ssize_t start,
int end, Py_ssize_t end,
int direction} int direction}
Return 1 if \var{substr} matches \var{str}[\var{start}:\var{end}] at Return 1 if \var{substr} matches \var{str}[\var{start}:\var{end}] at
the given tail end (\var{direction} == -1 means to do a prefix the given tail end (\var{direction} == -1 means to do a prefix
...@@ -1475,10 +1475,10 @@ They all return \NULL{} or \code{-1} if an exception occurs. ...@@ -1475,10 +1475,10 @@ They all return \NULL{} or \code{-1} if an exception occurs.
Return \code{-1} if an error occurred. Return \code{-1} if an error occurred.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyUnicode_Find}{PyObject *str, \begin{cfuncdesc}{Py_ssize_t}{PyUnicode_Find}{PyObject *str,
PyObject *substr, PyObject *substr,
int start, Py_ssize_t start,
int end, Py_ssize_t end,
int direction} int direction}
Return the first position of \var{substr} in Return the first position of \var{substr} in
\var{str}[\var{start}:\var{end}] using the given \var{direction} \var{str}[\var{start}:\var{end}] using the given \var{direction}
...@@ -1489,10 +1489,10 @@ They all return \NULL{} or \code{-1} if an exception occurs. ...@@ -1489,10 +1489,10 @@ They all return \NULL{} or \code{-1} if an exception occurs.
an exception has been set. an exception has been set.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyUnicode_Count}{PyObject *str, \begin{cfuncdesc}{Py_ssize_t}{PyUnicode_Count}{PyObject *str,
PyObject *substr, PyObject *substr,
int start, Py_ssize_t start,
int end} Py_ssize_t end}
Return the number of non-overlapping occurrences of \var{substr} in Return the number of non-overlapping occurrences of \var{substr} in
\code{\var{str}[\var{start}:\var{end}]}. Return \code{-1} if an \code{\var{str}[\var{start}:\var{end}]}. Return \code{-1} if an
error occurred. error occurred.
...@@ -1501,7 +1501,7 @@ They all return \NULL{} or \code{-1} if an exception occurs. ...@@ -1501,7 +1501,7 @@ They all return \NULL{} or \code{-1} if an exception occurs.
\begin{cfuncdesc}{PyObject*}{PyUnicode_Replace}{PyObject *str, \begin{cfuncdesc}{PyObject*}{PyUnicode_Replace}{PyObject *str,
PyObject *substr, PyObject *substr,
PyObject *replstr, PyObject *replstr,
int maxcount} Py_ssize_t maxcount}
Replace at most \var{maxcount} occurrences of \var{substr} in Replace at most \var{maxcount} occurrences of \var{substr} in
\var{str} with \var{replstr} and return the resulting Unicode object. \var{str} with \var{replstr} and return the resulting Unicode object.
\var{maxcount} == -1 means replace all occurrences. \var{maxcount} == -1 means replace all occurrences.
...@@ -1599,7 +1599,7 @@ format. ...@@ -1599,7 +1599,7 @@ format.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyBuffer_FromObject}{PyObject *base, \begin{cfuncdesc}{PyObject*}{PyBuffer_FromObject}{PyObject *base,
int offset, int size} Py_ssize_t offset, Py_ssize_t size}
Return a new read-only buffer object. This raises Return a new read-only buffer object. This raises
\exception{TypeError} if \var{base} doesn't support the read-only \exception{TypeError} if \var{base} doesn't support the read-only
buffer protocol or doesn't provide exactly one buffer segment, or it buffer protocol or doesn't provide exactly one buffer segment, or it
...@@ -1613,15 +1613,15 @@ format. ...@@ -1613,15 +1613,15 @@ format.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyBuffer_FromReadWriteObject}{PyObject *base, \begin{cfuncdesc}{PyObject*}{PyBuffer_FromReadWriteObject}{PyObject *base,
int offset, Py_ssize_t offset,
int size} Py_ssize_t size}
Return a new writable buffer object. Parameters and exceptions are Return a new writable buffer object. Parameters and exceptions are
similar to those for \cfunction{PyBuffer_FromObject()}. If the similar to those for \cfunction{PyBuffer_FromObject()}. If the
\var{base} object does not export the writeable buffer protocol, \var{base} object does not export the writeable buffer protocol,
then \exception{TypeError} is raised. then \exception{TypeError} is raised.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyBuffer_FromMemory}{void *ptr, int size} \begin{cfuncdesc}{PyObject*}{PyBuffer_FromMemory}{void *ptr, Py_ssize_t size}
Return a new read-only buffer object that reads from a specified Return a new read-only buffer object that reads from a specified
location in memory, with a specified size. The caller is location in memory, with a specified size. The caller is
responsible for ensuring that the memory buffer, passed in as responsible for ensuring that the memory buffer, passed in as
...@@ -1632,12 +1632,12 @@ format. ...@@ -1632,12 +1632,12 @@ format.
raised in that case. raised in that case.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyBuffer_FromReadWriteMemory}{void *ptr, int size} \begin{cfuncdesc}{PyObject*}{PyBuffer_FromReadWriteMemory}{void *ptr, Py_ssize_t size}
Similar to \cfunction{PyBuffer_FromMemory()}, but the returned Similar to \cfunction{PyBuffer_FromMemory()}, but the returned
buffer is writable. buffer is writable.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyBuffer_New}{int size} \begin{cfuncdesc}{PyObject*}{PyBuffer_New}{Py_ssize_t size}
Return a new writable buffer object that maintains its own memory Return a new writable buffer object that maintains its own memory
buffer of \var{size} bytes. \exception{ValueError} is returned if buffer of \var{size} bytes. \exception{ValueError} is returned if
\var{size} is not zero or positive. Note that the memory buffer (as \var{size} is not zero or positive. Note that the memory buffer (as
...@@ -1671,11 +1671,11 @@ format. ...@@ -1671,11 +1671,11 @@ format.
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyTuple_New}{int len} \begin{cfuncdesc}{PyObject*}{PyTuple_New}{Py_ssize_t len}
Return a new tuple object of size \var{len}, or \NULL{} on failure. Return a new tuple object of size \var{len}, or \NULL{} on failure.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyTuple_Pack}{int n, \moreargs} \begin{cfuncdesc}{PyObject*}{PyTuple_Pack}{Py_ssize_t n, \moreargs}
Return a new tuple object of size \var{n}, or \NULL{} on failure. Return a new tuple object of size \var{n}, or \NULL{} on failure.
The tuple values are initialized to the subsequent \var{n} C arguments The tuple values are initialized to the subsequent \var{n} C arguments
pointing to Python objects. \samp{PyTuple_Pack(2, \var{a}, \var{b})} pointing to Python objects. \samp{PyTuple_Pack(2, \var{a}, \var{b})}
...@@ -1693,38 +1693,38 @@ format. ...@@ -1693,38 +1693,38 @@ format.
point to a tuple; no error checking is performed. point to a tuple; no error checking is performed.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyTuple_GetItem}{PyObject *p, int pos} \begin{cfuncdesc}{PyObject*}{PyTuple_GetItem}{PyObject *p, Py_ssize_t pos}
Return the object at position \var{pos} in the tuple pointed to by Return the object at position \var{pos} in the tuple pointed to by
\var{p}. If \var{pos} is out of bounds, return \NULL{} and sets an \var{p}. If \var{pos} is out of bounds, return \NULL{} and sets an
\exception{IndexError} exception. \exception{IndexError} exception.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyTuple_GET_ITEM}{PyObject *p, int pos} \begin{cfuncdesc}{PyObject*}{PyTuple_GET_ITEM}{PyObject *p, Py_ssize_t pos}
Like \cfunction{PyTuple_GetItem()}, but does no checking of its Like \cfunction{PyTuple_GetItem()}, but does no checking of its
arguments. arguments.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyTuple_GetSlice}{PyObject *p, \begin{cfuncdesc}{PyObject*}{PyTuple_GetSlice}{PyObject *p,
int low, int high} Py_ssize_t low, Py_ssize_t high}
Take a slice of the tuple pointed to by \var{p} from \var{low} to Take a slice of the tuple pointed to by \var{p} from \var{low} to
\var{high} and return it as a new tuple. \var{high} and return it as a new tuple.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyTuple_SetItem}{PyObject *p, \begin{cfuncdesc}{int}{PyTuple_SetItem}{PyObject *p,
int pos, PyObject *o} Py_ssize_t pos, PyObject *o}
Insert a reference to object \var{o} at position \var{pos} of the Insert a reference to object \var{o} at position \var{pos} of the
tuple pointed to by \var{p}. Return \code{0} on success. tuple pointed to by \var{p}. Return \code{0} on success.
\note{This function ``steals'' a reference to \var{o}.} \note{This function ``steals'' a reference to \var{o}.}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{void}{PyTuple_SET_ITEM}{PyObject *p, \begin{cfuncdesc}{void}{PyTuple_SET_ITEM}{PyObject *p,
int pos, PyObject *o} Py_ssize_t pos, PyObject *o}
Like \cfunction{PyTuple_SetItem()}, but does no error checking, and Like \cfunction{PyTuple_SetItem()}, but does no error checking, and
should \emph{only} be used to fill in brand new tuples. \note{This should \emph{only} be used to fill in brand new tuples. \note{This
function ``steals'' a reference to \var{o}.} function ``steals'' a reference to \var{o}.}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{_PyTuple_Resize}{PyObject **p, int newsize} \begin{cfuncdesc}{int}{_PyTuple_Resize}{PyObject **p, Py_ssize_t newsize}
Can be used to resize a tuple. \var{newsize} will be the new length Can be used to resize a tuple. \var{newsize} will be the new length
of the tuple. Because tuples are \emph{supposed} to be immutable, of the tuple. Because tuples are \emph{supposed} to be immutable,
this should only be used if there is only one reference to the this should only be used if there is only one reference to the
...@@ -1768,32 +1768,32 @@ format. ...@@ -1768,32 +1768,32 @@ format.
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyList_New}{int len} \begin{cfuncdesc}{PyObject*}{PyList_New}{Py_ssize_t len}
Return a new list of length \var{len} on success, or \NULL{} on Return a new list of length \var{len} on success, or \NULL{} on
failure. failure.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyList_Size}{PyObject *list} \begin{cfuncdesc}{Py_ssize_t}{PyList_Size}{PyObject *list}
Return the length of the list object in \var{list}; this is Return the length of the list object in \var{list}; this is
equivalent to \samp{len(\var{list})} on a list object. equivalent to \samp{len(\var{list})} on a list object.
\bifuncindex{len} \bifuncindex{len}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyList_GET_SIZE}{PyObject *list} \begin{cfuncdesc}{Py_ssize_t}{PyList_GET_SIZE}{PyObject *list}
Macro form of \cfunction{PyList_Size()} without error checking. Macro form of \cfunction{PyList_Size()} without error checking.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyList_GetItem}{PyObject *list, int index} \begin{cfuncdesc}{PyObject*}{PyList_GetItem}{PyObject *list, Py_ssize_t index}
Return the object at position \var{pos} in the list pointed to by Return the object at position \var{pos} in the list pointed to by
\var{p}. If \var{pos} is out of bounds, return \NULL{} and set an \var{p}. If \var{pos} is out of bounds, return \NULL{} and set an
\exception{IndexError} exception. \exception{IndexError} exception.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyList_GET_ITEM}{PyObject *list, int i} \begin{cfuncdesc}{PyObject*}{PyList_GET_ITEM}{PyObject *list, Py_ssize_t i}
Macro form of \cfunction{PyList_GetItem()} without error checking. Macro form of \cfunction{PyList_GetItem()} without error checking.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyList_SetItem}{PyObject *list, int index, \begin{cfuncdesc}{int}{PyList_SetItem}{PyObject *list, Py_ssize_t index,
PyObject *item} PyObject *item}
Set the item at index \var{index} in list to \var{item}. Return Set the item at index \var{index} in list to \var{item}. Return
\code{0} on success or \code{-1} on failure. \note{This function \code{0} on success or \code{-1} on failure. \note{This function
...@@ -1801,7 +1801,7 @@ format. ...@@ -1801,7 +1801,7 @@ format.
item already in the list at the affected position.} item already in the list at the affected position.}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{void}{PyList_SET_ITEM}{PyObject *list, int i, \begin{cfuncdesc}{void}{PyList_SET_ITEM}{PyObject *list, Py_ssize_t i,
PyObject *o} PyObject *o}
Macro form of \cfunction{PyList_SetItem()} without error checking. Macro form of \cfunction{PyList_SetItem()} without error checking.
This is normally only used to fill in new lists where there is no This is normally only used to fill in new lists where there is no
...@@ -1812,7 +1812,7 @@ format. ...@@ -1812,7 +1812,7 @@ format.
\var{list} at position \var{i} will be leaked.} \var{list} at position \var{i} will be leaked.}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyList_Insert}{PyObject *list, int index, \begin{cfuncdesc}{int}{PyList_Insert}{PyObject *list, Py_ssize_t index,
PyObject *item} PyObject *item}
Insert the item \var{item} into list \var{list} in front of index Insert the item \var{item} into list \var{list} in front of index
\var{index}. Return \code{0} if successful; return \code{-1} and \var{index}. Return \code{0} if successful; return \code{-1} and
...@@ -1828,7 +1828,7 @@ format. ...@@ -1828,7 +1828,7 @@ format.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyList_GetSlice}{PyObject *list, \begin{cfuncdesc}{PyObject*}{PyList_GetSlice}{PyObject *list,
int low, int high} Py_ssize_t low, Py_ssize_t high}
Return a list of the objects in \var{list} containing the objects Return a list of the objects in \var{list} containing the objects
\emph{between} \var{low} and \var{high}. Return \NULL{} and set \emph{between} \var{low} and \var{high}. Return \NULL{} and set
an exception if unsuccessful. an exception if unsuccessful.
...@@ -1836,7 +1836,7 @@ format. ...@@ -1836,7 +1836,7 @@ format.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyList_SetSlice}{PyObject *list, \begin{cfuncdesc}{int}{PyList_SetSlice}{PyObject *list,
int low, int high, Py_ssize_t low, Py_ssize_t high,
PyObject *itemlist} PyObject *itemlist}
Set the slice of \var{list} between \var{low} and \var{high} to the Set the slice of \var{list} between \var{low} and \var{high} to the
contents of \var{itemlist}. Analogous to contents of \var{itemlist}. Analogous to
...@@ -1934,7 +1934,7 @@ format. ...@@ -1934,7 +1934,7 @@ format.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyDict_SetItemString}{PyObject *p, \begin{cfuncdesc}{int}{PyDict_SetItemString}{PyObject *p,
char *key, const char *key,
PyObject *val} PyObject *val}
Insert \var{value} into the dictionary \var{p} using \var{key} as a Insert \var{value} into the dictionary \var{p} using \var{key} as a
key. \var{key} should be a \ctype{char*}. The key object is created key. \var{key} should be a \ctype{char*}. The key object is created
...@@ -1961,7 +1961,7 @@ format. ...@@ -1961,7 +1961,7 @@ format.
\emph{without} setting an exception. \emph{without} setting an exception.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyDict_GetItemString}{PyObject *p, char *key} \begin{cfuncdesc}{PyObject*}{PyDict_GetItemString}{PyObject *p, const char *key}
This is the same as \cfunction{PyDict_GetItem()}, but \var{key} is This is the same as \cfunction{PyDict_GetItem()}, but \var{key} is
specified as a \ctype{char*}, rather than a \ctype{PyObject*}. specified as a \ctype{char*}, rather than a \ctype{PyObject*}.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -1984,12 +1984,12 @@ format. ...@@ -1984,12 +1984,12 @@ format.
(see the \citetitle[../lib/lib.html]{Python Library Reference}). (see the \citetitle[../lib/lib.html]{Python Library Reference}).
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyDict_Size}{PyObject *p} \begin{cfuncdesc}{Py_ssize_t}{PyDict_Size}{PyObject *p}
Return the number of items in the dictionary. This is equivalent Return the number of items in the dictionary. This is equivalent
to \samp{len(\var{p})} on a dictionary.\bifuncindex{len} to \samp{len(\var{p})} on a dictionary.\bifuncindex{len}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyDict_Next}{PyObject *p, int *ppos, \begin{cfuncdesc}{int}{PyDict_Next}{PyObject *p, Py_ssize_t *ppos,
PyObject **pkey, PyObject **pvalue} PyObject **pkey, PyObject **pvalue}
Iterate over all key-value pairs in the dictionary \var{p}. The Iterate over all key-value pairs in the dictionary \var{p}. The
\ctype{int} referred to by \var{ppos} must be initialized to \ctype{int} referred to by \var{ppos} must be initialized to
...@@ -2126,7 +2126,7 @@ implementation detail and may change in future releases of Python. ...@@ -2126,7 +2126,7 @@ implementation detail and may change in future releases of Python.
when the file should be closed. Return \NULL{} on failure. when the file should be closed. Return \NULL{} on failure.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{FILE*}{PyFile_AsFile}{PyFileObject *p} \begin{cfuncdesc}{FILE*}{PyFile_AsFile}{PyObject *p}
Return the file object associated with \var{p} as a \ctype{FILE*}. Return the file object associated with \var{p} as a \ctype{FILE*}.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -2175,7 +2175,7 @@ implementation detail and may change in future releases of Python. ...@@ -2175,7 +2175,7 @@ implementation detail and may change in future releases of Python.
function, but doing so should not be needed. function, but doing so should not be needed.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyFile_WriteObject}{PyObject *obj, PyFileObject *p, \begin{cfuncdesc}{int}{PyFile_WriteObject}{PyObject *obj, PyObject *p,
int flags} int flags}
Write object \var{obj} to file object \var{p}. The only supported Write object \var{obj} to file object \var{p}. The only supported
flag for \var{flags} is flag for \var{flags} is
...@@ -2185,7 +2185,7 @@ implementation detail and may change in future releases of Python. ...@@ -2185,7 +2185,7 @@ implementation detail and may change in future releases of Python.
failure; the appropriate exception will be set. failure; the appropriate exception will be set.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyFile_WriteString}{const char *s, PyFileObject *p} \begin{cfuncdesc}{int}{PyFile_WriteString}{const char *s, PyObject *p}
Write string \var{s} to file object \var{p}. Return \code{0} on Write string \var{s} to file object \var{p}. Return \code{0} on
success or \code{-1} on failure; the appropriate exception will be success or \code{-1} on failure; the appropriate exception will be
set. set.
...@@ -2313,7 +2313,7 @@ method objects. ...@@ -2313,7 +2313,7 @@ method objects.
\cdata{PyMethod_Type}). The parameter must not be \NULL{}. \cdata{PyMethod_Type}). The parameter must not be \NULL{}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyMethod_New}{PyObject *func. \begin{cfuncdesc}{PyObject*}{PyMethod_New}{PyObject *func,
PyObject *self, PyObject *class} PyObject *self, PyObject *class}
Return a new method object, with \var{func} being any callable Return a new method object, with \var{func} being any callable
object; this is the function that will be called when the method is object; this is the function that will be called when the method is
...@@ -2378,7 +2378,7 @@ There are only a few functions special to module objects. ...@@ -2378,7 +2378,7 @@ There are only a few functions special to module objects.
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyModule_New}{char *name} \begin{cfuncdesc}{PyObject*}{PyModule_New}{const char *name}
Return a new module object with the \member{__name__} attribute set Return a new module object with the \member{__name__} attribute set
to \var{name}. Only the module's \member{__doc__} and to \var{name}. Only the module's \member{__doc__} and
\member{__name__} attributes are filled in; the caller is \member{__name__} attributes are filled in; the caller is
...@@ -2415,7 +2415,7 @@ There are only a few functions special to module objects. ...@@ -2415,7 +2415,7 @@ There are only a few functions special to module objects.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyModule_AddObject}{PyObject *module, \begin{cfuncdesc}{int}{PyModule_AddObject}{PyObject *module,
char *name, PyObject *value} const char *name, PyObject *value}
Add an object to \var{module} as \var{name}. This is a convenience Add an object to \var{module} as \var{name}. This is a convenience
function which can be used from the module's initialization function which can be used from the module's initialization
function. This steals a reference to \var{value}. Return function. This steals a reference to \var{value}. Return
...@@ -2424,7 +2424,7 @@ There are only a few functions special to module objects. ...@@ -2424,7 +2424,7 @@ There are only a few functions special to module objects.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyModule_AddIntConstant}{PyObject *module, \begin{cfuncdesc}{int}{PyModule_AddIntConstant}{PyObject *module,
char *name, long value} const char *name, long value}
Add an integer constant to \var{module} as \var{name}. This Add an integer constant to \var{module} as \var{name}. This
convenience function can be used from the module's initialization convenience function can be used from the module's initialization
function. Return \code{-1} on error, \code{0} on success. function. Return \code{-1} on error, \code{0} on success.
...@@ -2432,7 +2432,7 @@ There are only a few functions special to module objects. ...@@ -2432,7 +2432,7 @@ There are only a few functions special to module objects.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyModule_AddStringConstant}{PyObject *module, \begin{cfuncdesc}{int}{PyModule_AddStringConstant}{PyObject *module,
char *name, char *value} const char *name, const char *value}
Add a string constant to \var{module} as \var{name}. This Add a string constant to \var{module} as \var{name}. This
convenience function can be used from the module's initialization convenience function can be used from the module's initialization
function. The string \var{value} must be null-terminated. Return function. The string \var{value} must be null-terminated. Return
...@@ -2503,17 +2503,17 @@ They are found in the dictionary of type objects. ...@@ -2503,17 +2503,17 @@ They are found in the dictionary of type objects.
\end{cvardesc} \end{cvardesc}
\begin{cfuncdesc}{PyObject*}{PyDescr_NewGetSet}{PyTypeObject *type, \begin{cfuncdesc}{PyObject*}{PyDescr_NewGetSet}{PyTypeObject *type,
PyGetSetDef *getset} struct PyGetSetDef *getset}
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyDescr_NewMember}{PyTypeObject *type, \begin{cfuncdesc}{PyObject*}{PyDescr_NewMember}{PyTypeObject *type,
PyMemberDef *meth} struct PyMemberDef *meth}
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyDescr_NewMethod}{PyTypeObject *type, \begin{cfuncdesc}{PyObject*}{PyDescr_NewMethod}{PyTypeObject *type,
PyMethodDef *meth} struct PyMethodDef *meth}
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
...@@ -2563,8 +2563,8 @@ They are found in the dictionary of type objects. ...@@ -2563,8 +2563,8 @@ They are found in the dictionary of type objects.
not be allocated. not be allocated.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySlice_GetIndices}{PySliceObject *slice, int length, \begin{cfuncdesc}{int}{PySlice_GetIndices}{PySliceObject *slice, Py_ssize_t length,
int *start, int *stop, int *step} Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step}
Retrieve the start, stop and step indices from the slice object Retrieve the start, stop and step indices from the slice object
\var{slice}, assuming a sequence of length \var{length}. Treats \var{slice}, assuming a sequence of length \var{length}. Treats
indices greater than \var{length} as errors. indices greater than \var{length} as errors.
...@@ -2579,9 +2579,9 @@ do well to incorporate the source of \cfunction{PySlice_GetIndicesEx}, ...@@ -2579,9 +2579,9 @@ do well to incorporate the source of \cfunction{PySlice_GetIndicesEx},
suitably renamed, in the source of your extension. suitably renamed, in the source of your extension.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySlice_GetIndicesEx}{PySliceObject *slice, int length, \begin{cfuncdesc}{int}{PySlice_GetIndicesEx}{PySliceObject *slice, Py_ssize_t length,
int *start, int *stop, int *step, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step,
int *slicelength} Py_ssize_t *slicelength}
Usable replacement for \cfunction{PySlice_GetIndices}. Retrieve the Usable replacement for \cfunction{PySlice_GetIndices}. Retrieve the
start, stop, and step indices from the slice object \var{slice} start, stop, and step indices from the slice object \var{slice}
assuming a sequence of length \var{length}, and store the length of assuming a sequence of length \var{length}, and store the length of
......
...@@ -113,7 +113,7 @@ for each thread. ...@@ -113,7 +113,7 @@ for each thread.
exception state.} exception state.}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{void}{PyErr_SetString}{PyObject *type, char *message} \begin{cfuncdesc}{void}{PyErr_SetString}{PyObject *type, const char *message}
This is the most common way to set the error indicator. The first This is the most common way to set the error indicator. The first
argument specifies the exception type; it is normally one of the argument specifies the exception type; it is normally one of the
standard exceptions, e.g. \cdata{PyExc_RuntimeError}. You need not standard exceptions, e.g. \cdata{PyExc_RuntimeError}. You need not
...@@ -184,7 +184,7 @@ for each thread. ...@@ -184,7 +184,7 @@ for each thread.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyErr_SetFromErrnoWithFilename}{PyObject *type, \begin{cfuncdesc}{PyObject*}{PyErr_SetFromErrnoWithFilename}{PyObject *type,
char *filename} const char *filename}
Similar to \cfunction{PyErr_SetFromErrno()}, with the additional Similar to \cfunction{PyErr_SetFromErrno()}, with the additional
behavior that if \var{filename} is not \NULL, it is passed to the behavior that if \var{filename} is not \NULL, it is passed to the
constructor of \var{type} as a third parameter. In the case of constructor of \var{type} as a third parameter. In the case of
...@@ -217,7 +217,7 @@ for each thread. ...@@ -217,7 +217,7 @@ for each thread.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyErr_SetFromWindowsErrWithFilename}{int ierr, \begin{cfuncdesc}{PyObject*}{PyErr_SetFromWindowsErrWithFilename}{int ierr,
char *filename} const char *filename}
Similar to \cfunction{PyErr_SetFromWindowsErr()}, with the Similar to \cfunction{PyErr_SetFromWindowsErr()}, with the
additional behavior that if \var{filename} is not \NULL, it is additional behavior that if \var{filename} is not \NULL, it is
passed to the constructor of \exception{WindowsError} as a third passed to the constructor of \exception{WindowsError} as a third
...@@ -275,8 +275,9 @@ for each thread. ...@@ -275,8 +275,9 @@ for each thread.
command line documentation. There is no C API for warning control. command line documentation. There is no C API for warning control.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyErr_WarnExplicit}{PyObject *category, char *message, \begin{cfuncdesc}{int}{PyErr_WarnExplicit}{PyObject *category,
char *filename, int lineno, char *module, PyObject *registry} const char *message, const char *filename, int lineno,
const char *module, PyObject *registry}
Issue a warning message with explicit control over all warning Issue a warning message with explicit control over all warning
attributes. This is a straightforward wrapper around the Python attributes. This is a straightforward wrapper around the Python
function \function{warnings.warn_explicit()}, see there for more function \function{warnings.warn_explicit()}, see there for more
......
...@@ -331,7 +331,7 @@ ...@@ -331,7 +331,7 @@
\withsubitem{(in module sys)}{\ttindex{version}} \withsubitem{(in module sys)}{\ttindex{version}}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PySys_SetArgv}{int argc, char **argv} \begin{cfuncdesc}{void}{PySys_SetArgv}{int argc, char **argv}
Set \code{sys.argv} based on \var{argc} and \var{argv}. These Set \code{sys.argv} based on \var{argc} and \var{argv}. These
parameters are similar to those passed to the program's parameters are similar to those passed to the program's
\cfunction{main()}\ttindex{main()} function with the difference that \cfunction{main()}\ttindex{main()} function with the difference that
......
...@@ -11,7 +11,7 @@ defining new object types. ...@@ -11,7 +11,7 @@ defining new object types.
\begin{cfuncdesc}{PyObject*}{_PyObject_New}{PyTypeObject *type} \begin{cfuncdesc}{PyObject*}{_PyObject_New}{PyTypeObject *type}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyVarObject*}{_PyObject_NewVar}{PyTypeObject *type, int size} \begin{cfuncdesc}{PyVarObject*}{_PyObject_NewVar}{PyTypeObject *type, Py_ssize_t size}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{void}{_PyObject_Del}{PyObject *op} \begin{cfuncdesc}{void}{_PyObject_Del}{PyObject *op}
...@@ -27,7 +27,7 @@ defining new object types. ...@@ -27,7 +27,7 @@ defining new object types.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyVarObject*}{PyObject_InitVar}{PyVarObject *op, \begin{cfuncdesc}{PyVarObject*}{PyObject_InitVar}{PyVarObject *op,
PyTypeObject *type, int size} PyTypeObject *type, Py_ssize_t size}
This does everything \cfunction{PyObject_Init()} does, and also This does everything \cfunction{PyObject_Init()} does, and also
initializes the length information for a variable-size object. initializes the length information for a variable-size object.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -42,7 +42,7 @@ defining new object types. ...@@ -42,7 +42,7 @@ defining new object types.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{\var{TYPE}*}{PyObject_NewVar}{TYPE, PyTypeObject *type, \begin{cfuncdesc}{\var{TYPE}*}{PyObject_NewVar}{TYPE, PyTypeObject *type,
int size} Py_ssize_t size}
Allocate a new Python object using the C structure type \var{TYPE} Allocate a new Python object using the C structure type \var{TYPE}
and the Python type object \var{type}. Fields not defined by the and the Python type object \var{type}. Fields not defined by the
Python object header are not initialized. The allocated memory Python object header are not initialized. The allocated memory
...@@ -69,7 +69,7 @@ defining new object types. ...@@ -69,7 +69,7 @@ defining new object types.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{\var{TYPE}*}{PyObject_NEW_VAR}{TYPE, PyTypeObject *type, \begin{cfuncdesc}{\var{TYPE}*}{PyObject_NEW_VAR}{TYPE, PyTypeObject *type,
int size} Py_ssize_t size}
Macro version of \cfunction{PyObject_NewVar()}, to gain performance Macro version of \cfunction{PyObject_NewVar()}, to gain performance
at the expense of safety. This does not check \var{type} for a at the expense of safety. This does not check \var{type} for a
\NULL{} value. \NULL{} value.
...@@ -170,13 +170,13 @@ These macros are used in the definition of \ctype{PyObject} and ...@@ -170,13 +170,13 @@ These macros are used in the definition of \ctype{PyObject} and
\csimplemacro{Py_TRACE_REFS}. By default, that macro is not \csimplemacro{Py_TRACE_REFS}. By default, that macro is not
defined, and \csimplemacro{PyObject_HEAD} expands to: defined, and \csimplemacro{PyObject_HEAD} expands to:
\begin{verbatim} \begin{verbatim}
int ob_refcnt; Py_ssize_t ob_refcnt;
PyTypeObject *ob_type; PyTypeObject *ob_type;
\end{verbatim} \end{verbatim}
When \csimplemacro{Py_TRACE_REFS} is defined, it expands to: When \csimplemacro{Py_TRACE_REFS} is defined, it expands to:
\begin{verbatim} \begin{verbatim}
PyObject *_ob_next, *_ob_prev; PyObject *_ob_next, *_ob_prev;
int ob_refcnt; Py_ssize_t ob_refcnt;
PyTypeObject *ob_type; PyTypeObject *ob_type;
\end{verbatim} \end{verbatim}
\end{csimplemacrodesc} \end{csimplemacrodesc}
...@@ -383,7 +383,7 @@ objects) \emph{must} have the \member{ob_size} field. ...@@ -383,7 +383,7 @@ objects) \emph{must} have the \member{ob_size} field.
These fields are not inherited by subtypes. These fields are not inherited by subtypes.
\end{cmemberdesc} \end{cmemberdesc}
\begin{cmemberdesc}{PyObject}{int}{ob_refcnt} \begin{cmemberdesc}{PyObject}{Py_ssize_t}{ob_refcnt}
This is the type object's reference count, initialized to \code{1} This is the type object's reference count, initialized to \code{1}
by the \code{PyObject_HEAD_INIT} macro. Note that for statically by the \code{PyObject_HEAD_INIT} macro. Note that for statically
allocated type objects, the type's instances (objects whose allocated type objects, the type's instances (objects whose
...@@ -421,7 +421,7 @@ Foo_Type.ob_type = &PyType_Type; ...@@ -421,7 +421,7 @@ Foo_Type.ob_type = &PyType_Type;
and in 2.3 and beyond, it is inherited by subtypes. and in 2.3 and beyond, it is inherited by subtypes.
\end{cmemberdesc} \end{cmemberdesc}
\begin{cmemberdesc}{PyVarObject}{int}{ob_size} \begin{cmemberdesc}{PyVarObject}{Py_ssize_t}{ob_size}
For statically allocated type objects, this should be initialized For statically allocated type objects, this should be initialized
to zero. For dynamically allocated type objects, this field has a to zero. For dynamically allocated type objects, this field has a
special internal meaning. special internal meaning.
...@@ -457,8 +457,8 @@ Foo_Type.ob_type = &PyType_Type; ...@@ -457,8 +457,8 @@ Foo_Type.ob_type = &PyType_Type;
This field is not inherited by subtypes. This field is not inherited by subtypes.
\end{cmemberdesc} \end{cmemberdesc}
\begin{cmemberdesc}{PyTypeObject}{int}{tp_basicsize} \begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_basicsize}
\cmemberline{PyTypeObject}{int}{tp_itemsize} \cmemberline{PyTypeObject}{Py_ssize_t}{tp_itemsize}
These fields allow calculating the size in bytes of instances of These fields allow calculating the size in bytes of instances of
the type. the type.
...@@ -1234,7 +1234,7 @@ int tp_init(PyObject *self, PyObject *args, PyObject *kwds) ...@@ -1234,7 +1234,7 @@ int tp_init(PyObject *self, PyObject *args, PyObject *kwds)
The function signature is The function signature is
\begin{verbatim} \begin{verbatim}
PyObject *tp_alloc(PyTypeObject *self, int nitems) PyObject *tp_alloc(PyTypeObject *self, Py_ssize_t nitems)
\end{verbatim} \end{verbatim}
The purpose of this function is to separate memory allocation from The purpose of this function is to separate memory allocation from
...@@ -1386,15 +1386,15 @@ The remaining fields are only defined if the feature test macro ...@@ -1386,15 +1386,15 @@ The remaining fields are only defined if the feature test macro
They are documented here for completeness. None of these fields are They are documented here for completeness. None of these fields are
inherited by subtypes. inherited by subtypes.
\begin{cmemberdesc}{PyTypeObject}{int}{tp_allocs} \begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_allocs}
Number of allocations. Number of allocations.
\end{cmemberdesc} \end{cmemberdesc}
\begin{cmemberdesc}{PyTypeObject}{int}{tp_frees} \begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_frees}
Number of frees. Number of frees.
\end{cmemberdesc} \end{cmemberdesc}
\begin{cmemberdesc}{PyTypeObject}{int}{tp_maxalloc} \begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_maxalloc}
Maximum simultaneously allocated objects. Maximum simultaneously allocated objects.
\end{cmemberdesc} \end{cmemberdesc}
...@@ -1509,8 +1509,8 @@ to be able to test for its presence before using it.} ...@@ -1509,8 +1509,8 @@ to be able to test for its presence before using it.}
\member{bf_getcharbuffer} slot is non-\NULL. \member{bf_getcharbuffer} slot is non-\NULL.
\end{datadesc} \end{datadesc}
\begin{ctypedesc}[getreadbufferproc]{int (*getreadbufferproc) \begin{ctypedesc}[getreadbufferproc]{Py_ssize_t (*readbufferproc)
(PyObject *self, int segment, void **ptrptr)} (PyObject *self, Py_ssize_t segment, void **ptrptr)}
Return a pointer to a readable segment of the buffer. This function Return a pointer to a readable segment of the buffer. This function
is allowed to raise an exception, in which case it must return is allowed to raise an exception, in which case it must return
\code{-1}. The \var{segment} which is passed must be zero or \code{-1}. The \var{segment} which is passed must be zero or
...@@ -1520,8 +1520,8 @@ to be able to test for its presence before using it.} ...@@ -1520,8 +1520,8 @@ to be able to test for its presence before using it.}
pointer to that memory. pointer to that memory.
\end{ctypedesc} \end{ctypedesc}
\begin{ctypedesc}[getwritebufferproc]{int (*getwritebufferproc) \begin{ctypedesc}[getwritebufferproc]{Py_ssize_t (*writebufferproc)
(PyObject *self, int segment, void **ptrptr)} (PyObject *self, Py_ssize_t segment, void **ptrptr)}
Return a pointer to a writable memory buffer in Return a pointer to a writable memory buffer in
\code{*\var{ptrptr}}, and the length of that segment as the function \code{*\var{ptrptr}}, and the length of that segment as the function
return value. The memory buffer must correspond to buffer segment return value. The memory buffer must correspond to buffer segment
...@@ -1535,16 +1535,16 @@ to be able to test for its presence before using it.} ...@@ -1535,16 +1535,16 @@ to be able to test for its presence before using it.}
% code. % code.
\end{ctypedesc} \end{ctypedesc}
\begin{ctypedesc}[getsegcountproc]{int (*getsegcountproc) \begin{ctypedesc}[getsegcountproc]{Py_ssize_t (*segcountproc)
(PyObject *self, int *lenp)} (PyObject *self, Py_ssize_t *lenp)}
Return the number of memory segments which comprise the buffer. If Return the number of memory segments which comprise the buffer. If
\var{lenp} is not \NULL, the implementation must report the sum of \var{lenp} is not \NULL, the implementation must report the sum of
the sizes (in bytes) of all segments in \code{*\var{lenp}}. the sizes (in bytes) of all segments in \code{*\var{lenp}}.
The function cannot fail. The function cannot fail.
\end{ctypedesc} \end{ctypedesc}
\begin{ctypedesc}[getcharbufferproc]{int (*getcharbufferproc) \begin{ctypedesc}[getcharbufferproc]{Py_ssize_t (*charbufferproc)
(PyObject *self, int segment, const char **ptrptr)} (PyObject *self, Py_ssize_t segment, const char **ptrptr)}
Return the size of the memory buffer in \var{ptrptr} for segment Return the size of the memory buffer in \var{ptrptr} for segment
\var{segment}. \code{*\var{ptrptr}} is set to the memory buffer. \var{segment}. \code{*\var{ptrptr}} is set to the memory buffer.
\end{ctypedesc} \end{ctypedesc}
...@@ -1599,12 +1599,12 @@ Constructors for container types must conform to two rules: ...@@ -1599,12 +1599,12 @@ Constructors for container types must conform to two rules:
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{\var{TYPE}*}{PyObject_GC_NewVar}{TYPE, PyTypeObject *type, \begin{cfuncdesc}{\var{TYPE}*}{PyObject_GC_NewVar}{TYPE, PyTypeObject *type,
int size} Py_ssize_t size}
Analogous to \cfunction{PyObject_NewVar()} but for container objects Analogous to \cfunction{PyObject_NewVar()} but for container objects
with the \constant{Py_TPFLAGS_HAVE_GC} flag set. with the \constant{Py_TPFLAGS_HAVE_GC} flag set.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyVarObject *}{PyObject_GC_Resize}{PyVarObject *op, int} \begin{cfuncdesc}{PyVarObject *}{PyObject_GC_Resize}{PyVarObject *op, Py_ssize_t}
Resize an object allocated by \cfunction{PyObject_NewVar()}. Returns Resize an object allocated by \cfunction{PyObject_NewVar()}. Returns
the resized object or \NULL{} on failure. the resized object or \NULL{} on failure.
\end{cfuncdesc} \end{cfuncdesc}
...@@ -1633,12 +1633,12 @@ pair of rules: ...@@ -1633,12 +1633,12 @@ pair of rules:
\cfunction{PyObject_GC_Del()}. \cfunction{PyObject_GC_Del()}.
\end{enumerate} \end{enumerate}
\begin{cfuncdesc}{void}{PyObject_GC_Del}{PyObject *op} \begin{cfuncdesc}{void}{PyObject_GC_Del}{void *op}
Releases memory allocated to an object using Releases memory allocated to an object using
\cfunction{PyObject_GC_New()} or \cfunction{PyObject_GC_NewVar()}. \cfunction{PyObject_GC_New()} or \cfunction{PyObject_GC_NewVar()}.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{void}{PyObject_GC_UnTrack}{PyObject *op} \begin{cfuncdesc}{void}{PyObject_GC_UnTrack}{void *op}
Remove the object \var{op} from the set of container objects tracked Remove the object \var{op} from the set of container objects tracked
by the collector. Note that \cfunction{PyObject_GC_Track()} can be by the collector. Note that \cfunction{PyObject_GC_Track()} can be
called again on this object to add it back to the set of tracked called again on this object to add it back to the set of tracked
......
...@@ -8,7 +8,7 @@ values from C values. ...@@ -8,7 +8,7 @@ values from C values.
\section{Operating System Utilities \label{os}} \section{Operating System Utilities \label{os}}
\begin{cfuncdesc}{int}{Py_FdIsInteractive}{FILE *fp, char *filename} \begin{cfuncdesc}{int}{Py_FdIsInteractive}{FILE *fp, const char *filename}
Return true (nonzero) if the standard I/O file \var{fp} with name Return true (nonzero) if the standard I/O file \var{fp} with name
\var{filename} is deemed interactive. This is the case for files \var{filename} is deemed interactive. This is the case for files
for which \samp{isatty(fileno(\var{fp}))} is true. If the global for which \samp{isatty(fileno(\var{fp}))} is true. If the global
...@@ -91,7 +91,7 @@ values from C values. ...@@ -91,7 +91,7 @@ values from C values.
\section{Importing Modules \label{importing}} \section{Importing Modules \label{importing}}
\begin{cfuncdesc}{PyObject*}{PyImport_ImportModule}{char *name} \begin{cfuncdesc}{PyObject*}{PyImport_ImportModule}{const char *name}
This is a simplified interface to This is a simplified interface to
\cfunction{PyImport_ImportModuleEx()} below, leaving the \cfunction{PyImport_ImportModuleEx()} below, leaving the
\var{globals} and \var{locals} arguments set to \NULL. When the \var{globals} and \var{locals} arguments set to \NULL. When the
...@@ -148,7 +148,7 @@ values from C values. ...@@ -148,7 +148,7 @@ values from C values.
case). case).
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyImport_AddModule}{char *name} \begin{cfuncdesc}{PyObject*}{PyImport_AddModule}{const char *name}
Return the module object corresponding to a module name. The Return the module object corresponding to a module name. The
\var{name} argument may be of the form \code{package.module}. \var{name} argument may be of the form \code{package.module}.
First check the modules dictionary if there's one there, and if not, First check the modules dictionary if there's one there, and if not,
...@@ -369,7 +369,7 @@ Should only non-negative values be written using these routines? ...@@ -369,7 +369,7 @@ Should only non-negative values be written using these routines?
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyMarshal_ReadObjectFromString}{char *string, \begin{cfuncdesc}{PyObject*}{PyMarshal_ReadObjectFromString}{char *string,
int len} Py_ssize_t len}
Return a Python object from the data stream in a character buffer Return a Python object from the data stream in a character buffer
containing \var{len} bytes pointed to by \var{string}. On error, containing \var{len} bytes pointed to by \var{string}. On error,
sets the appropriate exception (\exception{EOFError} or sets the appropriate exception (\exception{EOFError} or
...@@ -687,21 +687,21 @@ format and the format must be exhausted. On success, the ...@@ -687,21 +687,21 @@ format and the format must be exhausted. On success, the
\cfunction{PyArg_Parse*()} functions return true, otherwise they \cfunction{PyArg_Parse*()} functions return true, otherwise they
return false and raise an appropriate exception. return false and raise an appropriate exception.
\begin{cfuncdesc}{int}{PyArg_ParseTuple}{PyObject *args, char *format, \begin{cfuncdesc}{int}{PyArg_ParseTuple}{PyObject *args, const char *format,
\moreargs} \moreargs}
Parse the parameters of a function that takes only positional Parse the parameters of a function that takes only positional
parameters into local variables. Returns true on success; on parameters into local variables. Returns true on success; on
failure, it returns false and raises the appropriate exception. failure, it returns false and raises the appropriate exception.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_VaParse}{PyObject *args, char *format, \begin{cfuncdesc}{int}{PyArg_VaParse}{PyObject *args, const char *format,
va_list vargs} va_list vargs}
Identical to \cfunction{PyArg_ParseTuple()}, except that it accepts a Identical to \cfunction{PyArg_ParseTuple()}, except that it accepts a
va_list rather than a variable number of arguments. va_list rather than a variable number of arguments.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_ParseTupleAndKeywords}{PyObject *args, \begin{cfuncdesc}{int}{PyArg_ParseTupleAndKeywords}{PyObject *args,
PyObject *kw, char *format, char *keywords[], PyObject *kw, const char *format, char *keywords[],
\moreargs} \moreargs}
Parse the parameters of a function that takes both positional and Parse the parameters of a function that takes both positional and
keyword parameters into local variables. Returns true on success; keyword parameters into local variables. Returns true on success;
...@@ -709,13 +709,13 @@ return false and raise an appropriate exception. ...@@ -709,13 +709,13 @@ return false and raise an appropriate exception.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_VaParseTupleAndKeywords}{PyObject *args, \begin{cfuncdesc}{int}{PyArg_VaParseTupleAndKeywords}{PyObject *args,
PyObject *kw, char *format, char *keywords[], PyObject *kw, const char *format, char *keywords[],
va_list vargs} va_list vargs}
Identical to \cfunction{PyArg_ParseTupleAndKeywords()}, except that it Identical to \cfunction{PyArg_ParseTupleAndKeywords()}, except that it
accepts a va_list rather than a variable number of arguments. accepts a va_list rather than a variable number of arguments.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_Parse}{PyObject *args, char *format, \begin{cfuncdesc}{int}{PyArg_Parse}{PyObject *args, const char *format,
\moreargs} \moreargs}
Function used to deconstruct the argument lists of ``old-style'' Function used to deconstruct the argument lists of ``old-style''
functions --- these are functions which use the functions --- these are functions which use the
...@@ -727,8 +727,8 @@ return false and raise an appropriate exception. ...@@ -727,8 +727,8 @@ return false and raise an appropriate exception.
purpose. purpose.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_UnpackTuple}{PyObject *args, char *name, \begin{cfuncdesc}{int}{PyArg_UnpackTuple}{PyObject *args, const char *name,
int min, int max, \moreargs} Py_ssize_t min, Py_ssize_t max, \moreargs}
A simpler form of parameter retrieval which does not use a format A simpler form of parameter retrieval which does not use a format
string to specify the types of the arguments. Functions which use string to specify the types of the arguments. Functions which use
this method to retrieve their parameters should be declared as this method to retrieve their parameters should be declared as
...@@ -774,7 +774,7 @@ PyArg_ParseTuple(args, "O|O:ref", &object, &callback) ...@@ -774,7 +774,7 @@ PyArg_ParseTuple(args, "O|O:ref", &object, &callback)
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{Py_BuildValue}{char *format, \begin{cfuncdesc}{PyObject*}{Py_BuildValue}{const char *format,
\moreargs} \moreargs}
Create a new value based on a format string similar to those Create a new value based on a format string similar to those
accepted by the \cfunction{PyArg_Parse*()} family of functions and a accepted by the \cfunction{PyArg_Parse*()} family of functions and a
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment