Document PyImport_AppendInittab(), PyImport_ExtendInittab(), and

struct _inittab.

This closes SourceForge bug #111499.
This commit is contained in:
Fred Drake 2000-09-01 05:30:00 +00:00
parent 045946d4ee
commit e0d9a83bea
1 changed files with 39 additions and 1 deletions

View File

@ -1238,7 +1238,7 @@ already imported.)
This is the structure type definition for frozen module descriptors,
as generated by the \program{freeze}\index{freeze utility} utility
(see \file{Tools/freeze/} in the Python source distribution). Its
definition is:
definition, found in \file{Include/import.h}, is:
\begin{verbatim}
struct _frozen {
@ -1257,6 +1257,44 @@ this table. Third-party code could play tricks with this to provide a
dynamically created collection of frozen modules.
\end{cvardesc}
\begin{cfuncdesc}{int}{PyImport_AppendInittab}{char *name,
void (*initfunc)(void)}
Add a single module to the existing table of built-in modules. This
is a convenience wrapper around \cfunction{PyImport_ExtendInittab()},
returning \code{-1} if the table could not be extended. The new
module can be imported by the name \var{name}, and uses the function
\var{initfunc} as the initialization function called on the first
attempted import. This should be called before
\cfunction{Py_Initialize()}.
\end{cfuncdesc}
\begin{ctypedesc}[_inittab]{struct _inittab}
Structure describing a single entry in the list of built-in modules.
Each of these structures gives the name and initialization function
for a module built into the interpreter. Programs which embed Python
may use an array of these structures in conjunction with
\cfunction{PyImport_ExtendInittab()} to provide additional built-in
modules. The structure is defined in \file{Include/import.h} as:
\begin{verbatim}
struct _inittab {
char *name;
void (*initfunc)(void);
};
\end{verbatim}
\end{ctypedesc}
\begin{cfuncdesc}{int}{PyImport_ExtendInittab}{struct _inittab *newtab}
Add a collection of modules to the table of built-in modules. The
\var{newtab} array must end with a sentinel entry which contains
\NULL{} for the \member{name} field; failure to provide the sentinel
value can result in a memory fault. Returns \code{0} on success or
\code{-1} if insufficient memory could be allocated to extend the
internal table. In the event of failure, no modules are added to the
internal table. This should be called before
\cfunction{Py_Initialize()}.
\end{cfuncdesc}
\chapter{Abstract Objects Layer \label{abstract}}