Kaydet (Commit) 29fafd87 authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Make documentation match the implementation.

üst 67d70eb9
......@@ -16,7 +16,7 @@ for which they do not apply, they will raise a Python exception.
object is written instead of the \function{repr()}.
\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
\code{0} otherwise. This is equivalent to the Python expression
\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.
\end{cfuncdesc}
\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}.
Returns the attribute value on success, or \NULL{} on failure.
This is the equivalent of the Python expression
......@@ -50,7 +50,7 @@ for which they do not apply, they will raise a Python exception.
\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
\var{o}, to the value \var{v}. Returns \code{-1} on failure. This
is the equivalent of the Python statement
......@@ -67,7 +67,7 @@ for which they do not apply, they will raise a Python exception.
\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
\code{-1} on failure. This is the equivalent of the Python
statement: \samp{del \var{o}.\var{attr_name}}.
......@@ -301,7 +301,7 @@ determination.
\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,
return \code{-1}. This is the equivalent of the Python expression
\samp{hash(\var{o})}.\bifuncindex{hash}
......@@ -340,8 +340,8 @@ determination.
\versionadded{2.2}
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PyObject_Length}{PyObject *o}
\cfuncline{int}{PyObject_Size}{PyObject *o}
\begin{cfuncdesc}{Py_ssize_t}{PyObject_Length}{PyObject *o}
\cfuncline{Py_ssize_t}{PyObject_Size}{PyObject *o}
Return the length of object \var{o}. If the object \var{o} provides
either the sequence and mapping protocols, the sequence length is
returned. On error, \code{-1} is returned. This is the equivalent
......@@ -697,14 +697,14 @@ determination.
\code{0} otherwise. This function always succeeds.
\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
\code{-1} on failure. For objects that do not provide sequence
protocol, this is equivalent to the Python expression
\samp{len(\var{o})}.\bifuncindex{len}
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_Length}{PyObject *o}
\begin{cfuncdesc}{Py_ssize_t}{PySequence_Length}{PyObject *o}
Alternate name for \cfunction{PySequence_Size()}.
\end{cfuncdesc}
......@@ -715,7 +715,7 @@ determination.
\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}
times, or \NULL{} on failure. This is the equivalent of the Python
expression \samp{\var{o} * \var{count}}.
......@@ -730,7 +730,7 @@ determination.
\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}
times, or \NULL{} on failure. The operation is done \emph{in-place}
when \var{o} supports it. This is the equivalent of the Python
......@@ -738,41 +738,41 @@ determination.
\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.
This is the equivalent of the Python expression
\samp{\var{o}[\var{i}]}.
\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
\var{i2}, or \NULL{} on failure. This is the equivalent of the
Python expression \samp{\var{o}[\var{i1}:\var{i2}]}.
\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
\code{-1} on failure. This is the equivalent of the Python
statement \samp{\var{o}[\var{i}] = \var{v}}. This function \emph{does not}
steal a reference to \var{v}.
\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}
on failure. This is the equivalent of the Python statement
\samp{del \var{o}[\var{i}]}.
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PySequence_SetSlice}{PyObject *o, int i1,
int i2, PyObject *v}
\begin{cfuncdesc}{int}{PySequence_SetSlice}{PyObject *o, Py_ssize_t i1,
Py_ssize_t i2, PyObject *v}
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
Python statement \samp{\var{o}[\var{i1}:\var{i2}] = \var{v}}.
\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
\var{i2}. Returns \code{-1} on failure. This is the equivalent of
the Python statement \samp{del \var{o}[\var{i1}:\var{i2}]}.
......@@ -821,7 +821,7 @@ determination.
text.
\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
returned by \cfunction{PySequence_Fast()}, \var{o} is not \NULL,
and that \var{i} is within bounds.
......@@ -834,7 +834,7 @@ determination.
\versionadded{2.4}
\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.
Macro form of \cfunction{PySequence_GetItem()} but without checking
that \cfunction{PySequence_Check(\var{o})} is true and without
......@@ -860,7 +860,7 @@ determination.
\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
\code{-1} on failure. For objects that do not provide mapping
protocol, this is equivalent to the Python expression
......@@ -986,7 +986,7 @@ else {
\begin{cfuncdesc}{int}{PyObject_AsCharBuffer}{PyObject *obj,
const char **buffer,
int *buffer_len}
Py_ssize_t *buffer_len}
Returns a pointer to a read-only memory location useable as character-
based input. The \var{obj} argument must support the single-segment
character buffer interface. On success, returns \code{0}, sets
......@@ -997,7 +997,7 @@ else {
\begin{cfuncdesc}{int}{PyObject_AsReadBuffer}{PyObject *obj,
const void **buffer,
int *buffer_len}
Py_ssize_t *buffer_len}
Returns a pointer to a read-only memory location containing
arbitrary data. The \var{obj} argument must support the
single-segment readable buffer interface. On success, returns
......@@ -1015,7 +1015,7 @@ else {
\begin{cfuncdesc}{int}{PyObject_AsWriteBuffer}{PyObject *obj,
void **buffer,
int *buffer_len}
Py_ssize_t *buffer_len}
Returns a pointer to a writeable memory location. The \var{obj}
argument must support the single-segment, character buffer
interface. On success, returns \code{0}, sets \var{buffer} to the
......
This diff is collapsed.
......@@ -113,7 +113,7 @@ for each thread.
exception state.}
\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
argument specifies the exception type; it is normally one of the
standard exceptions, e.g. \cdata{PyExc_RuntimeError}. You need not
......@@ -184,7 +184,7 @@ for each thread.
\end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyErr_SetFromErrnoWithFilename}{PyObject *type,
char *filename}
const char *filename}
Similar to \cfunction{PyErr_SetFromErrno()}, with the additional
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
......@@ -217,7 +217,7 @@ for each thread.
\end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyErr_SetFromWindowsErrWithFilename}{int ierr,
char *filename}
const char *filename}
Similar to \cfunction{PyErr_SetFromWindowsErr()}, with the
additional behavior that if \var{filename} is not \NULL, it is
passed to the constructor of \exception{WindowsError} as a third
......@@ -275,8 +275,9 @@ for each thread.
command line documentation. There is no C API for warning control.
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PyErr_WarnExplicit}{PyObject *category, char *message,
char *filename, int lineno, char *module, PyObject *registry}
\begin{cfuncdesc}{int}{PyErr_WarnExplicit}{PyObject *category,
const char *message, const char *filename, int lineno,
const char *module, PyObject *registry}
Issue a warning message with explicit control over all warning
attributes. This is a straightforward wrapper around the Python
function \function{warnings.warn_explicit()}, see there for more
......
......@@ -331,7 +331,7 @@
\withsubitem{(in module sys)}{\ttindex{version}}
\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
parameters are similar to those passed to the program's
\cfunction{main()}\ttindex{main()} function with the difference that
......
......@@ -11,7 +11,7 @@ defining new object types.
\begin{cfuncdesc}{PyObject*}{_PyObject_New}{PyTypeObject *type}
\end{cfuncdesc}
\begin{cfuncdesc}{PyVarObject*}{_PyObject_NewVar}{PyTypeObject *type, int size}
\begin{cfuncdesc}{PyVarObject*}{_PyObject_NewVar}{PyTypeObject *type, Py_ssize_t size}
\end{cfuncdesc}
\begin{cfuncdesc}{void}{_PyObject_Del}{PyObject *op}
......@@ -27,7 +27,7 @@ defining new object types.
\end{cfuncdesc}
\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
initializes the length information for a variable-size object.
\end{cfuncdesc}
......@@ -42,7 +42,7 @@ defining new object types.
\end{cfuncdesc}
\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}
and the Python type object \var{type}. Fields not defined by the
Python object header are not initialized. The allocated memory
......@@ -69,7 +69,7 @@ defining new object types.
\end{cfuncdesc}
\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
at the expense of safety. This does not check \var{type} for a
\NULL{} value.
......@@ -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
defined, and \csimplemacro{PyObject_HEAD} expands to:
\begin{verbatim}
int ob_refcnt;
Py_ssize_t ob_refcnt;
PyTypeObject *ob_type;
\end{verbatim}
When \csimplemacro{Py_TRACE_REFS} is defined, it expands to:
\begin{verbatim}
PyObject *_ob_next, *_ob_prev;
int ob_refcnt;
Py_ssize_t ob_refcnt;
PyTypeObject *ob_type;
\end{verbatim}
\end{csimplemacrodesc}
......@@ -383,7 +383,7 @@ objects) \emph{must} have the \member{ob_size} field.
These fields are not inherited by subtypes.
\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}
by the \code{PyObject_HEAD_INIT} macro. Note that for statically
allocated type objects, the type's instances (objects whose
......@@ -421,7 +421,7 @@ Foo_Type.ob_type = &PyType_Type;
and in 2.3 and beyond, it is inherited by subtypes.
\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
to zero. For dynamically allocated type objects, this field has a
special internal meaning.
......@@ -457,8 +457,8 @@ Foo_Type.ob_type = &PyType_Type;
This field is not inherited by subtypes.
\end{cmemberdesc}
\begin{cmemberdesc}{PyTypeObject}{int}{tp_basicsize}
\cmemberline{PyTypeObject}{int}{tp_itemsize}
\begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_basicsize}
\cmemberline{PyTypeObject}{Py_ssize_t}{tp_itemsize}
These fields allow calculating the size in bytes of instances of
the type.
......@@ -1234,7 +1234,7 @@ int tp_init(PyObject *self, PyObject *args, PyObject *kwds)
The function signature is
\begin{verbatim}
PyObject *tp_alloc(PyTypeObject *self, int nitems)
PyObject *tp_alloc(PyTypeObject *self, Py_ssize_t nitems)
\end{verbatim}
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
They are documented here for completeness. None of these fields are
inherited by subtypes.
\begin{cmemberdesc}{PyTypeObject}{int}{tp_allocs}
\begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_allocs}
Number of allocations.
\end{cmemberdesc}
\begin{cmemberdesc}{PyTypeObject}{int}{tp_frees}
\begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_frees}
Number of frees.
\end{cmemberdesc}
\begin{cmemberdesc}{PyTypeObject}{int}{tp_maxalloc}
\begin{cmemberdesc}{PyTypeObject}{Py_ssize_t}{tp_maxalloc}
Maximum simultaneously allocated objects.
\end{cmemberdesc}
......@@ -1509,8 +1509,8 @@ to be able to test for its presence before using it.}
\member{bf_getcharbuffer} slot is non-\NULL.
\end{datadesc}
\begin{ctypedesc}[getreadbufferproc]{int (*getreadbufferproc)
(PyObject *self, int segment, void **ptrptr)}
\begin{ctypedesc}[getreadbufferproc]{Py_ssize_t (*readbufferproc)
(PyObject *self, Py_ssize_t segment, void **ptrptr)}
Return a pointer to a readable segment of the buffer. This function
is allowed to raise an exception, in which case it must return
\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.}
pointer to that memory.
\end{ctypedesc}
\begin{ctypedesc}[getwritebufferproc]{int (*getwritebufferproc)
(PyObject *self, int segment, void **ptrptr)}
\begin{ctypedesc}[getwritebufferproc]{Py_ssize_t (*writebufferproc)
(PyObject *self, Py_ssize_t segment, void **ptrptr)}
Return a pointer to a writable memory buffer in
\code{*\var{ptrptr}}, and the length of that segment as the function
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.}
% code.
\end{ctypedesc}
\begin{ctypedesc}[getsegcountproc]{int (*getsegcountproc)
(PyObject *self, int *lenp)}
\begin{ctypedesc}[getsegcountproc]{Py_ssize_t (*segcountproc)
(PyObject *self, Py_ssize_t *lenp)}
Return the number of memory segments which comprise the buffer. If
\var{lenp} is not \NULL, the implementation must report the sum of
the sizes (in bytes) of all segments in \code{*\var{lenp}}.
The function cannot fail.
\end{ctypedesc}
\begin{ctypedesc}[getcharbufferproc]{int (*getcharbufferproc)
(PyObject *self, int segment, const char **ptrptr)}
\begin{ctypedesc}[getcharbufferproc]{Py_ssize_t (*charbufferproc)
(PyObject *self, Py_ssize_t segment, const char **ptrptr)}
Return the size of the memory buffer in \var{ptrptr} for segment
\var{segment}. \code{*\var{ptrptr}} is set to the memory buffer.
\end{ctypedesc}
......@@ -1599,12 +1599,12 @@ Constructors for container types must conform to two rules:
\end{cfuncdesc}
\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
with the \constant{Py_TPFLAGS_HAVE_GC} flag set.
\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
the resized object or \NULL{} on failure.
\end{cfuncdesc}
......@@ -1633,12 +1633,12 @@ pair of rules:
\cfunction{PyObject_GC_Del()}.
\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
\cfunction{PyObject_GC_New()} or \cfunction{PyObject_GC_NewVar()}.
\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
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
......
......@@ -8,7 +8,7 @@ values from C values.
\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
\var{filename} is deemed interactive. This is the case for files
for which \samp{isatty(fileno(\var{fp}))} is true. If the global
......@@ -91,7 +91,7 @@ values from C values.
\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
\cfunction{PyImport_ImportModuleEx()} below, leaving the
\var{globals} and \var{locals} arguments set to \NULL. When the
......@@ -148,7 +148,7 @@ values from C values.
case).
\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
\var{name} argument may be of the form \code{package.module}.
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?
\end{cfuncdesc}
\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
containing \var{len} bytes pointed to by \var{string}. On error,
sets the appropriate exception (\exception{EOFError} or
......@@ -687,21 +687,21 @@ format and the format must be exhausted. On success, the
\cfunction{PyArg_Parse*()} functions return true, otherwise they
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}
Parse the parameters of a function that takes only positional
parameters into local variables. Returns true on success; on
failure, it returns false and raises the appropriate exception.
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_VaParse}{PyObject *args, char *format,
\begin{cfuncdesc}{int}{PyArg_VaParse}{PyObject *args, const char *format,
va_list vargs}
Identical to \cfunction{PyArg_ParseTuple()}, except that it accepts a
va_list rather than a variable number of arguments.
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_ParseTupleAndKeywords}{PyObject *args,
PyObject *kw, char *format, char *keywords[],
PyObject *kw, const char *format, char *keywords[],
\moreargs}
Parse the parameters of a function that takes both positional and
keyword parameters into local variables. Returns true on success;
......@@ -709,13 +709,13 @@ return false and raise an appropriate exception.
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_VaParseTupleAndKeywords}{PyObject *args,
PyObject *kw, char *format, char *keywords[],
PyObject *kw, const char *format, char *keywords[],
va_list vargs}
Identical to \cfunction{PyArg_ParseTupleAndKeywords()}, except that it
accepts a va_list rather than a variable number of arguments.
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_Parse}{PyObject *args, char *format,
\begin{cfuncdesc}{int}{PyArg_Parse}{PyObject *args, const char *format,
\moreargs}
Function used to deconstruct the argument lists of ``old-style''
functions --- these are functions which use the
......@@ -727,8 +727,8 @@ return false and raise an appropriate exception.
purpose.
\end{cfuncdesc}
\begin{cfuncdesc}{int}{PyArg_UnpackTuple}{PyObject *args, char *name,
int min, int max, \moreargs}
\begin{cfuncdesc}{int}{PyArg_UnpackTuple}{PyObject *args, const char *name,
Py_ssize_t min, Py_ssize_t max, \moreargs}
A simpler form of parameter retrieval which does not use a format
string to specify the types of the arguments. Functions which use
this method to retrieve their parameters should be declared as
......@@ -774,7 +774,7 @@ PyArg_ParseTuple(args, "O|O:ref", &object, &callback)
\versionadded{2.2}
\end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{Py_BuildValue}{char *format,
\begin{cfuncdesc}{PyObject*}{Py_BuildValue}{const char *format,
\moreargs}
Create a new value based on a format string similar to those
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