diff options
author | Fred Drake <fdrake@acm.org> | 2000-09-01 05:30:00 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2000-09-01 05:30:00 (GMT) |
commit | e0d9a83bea5f78964217fd1f2dd82027841c9444 (patch) | |
tree | ea185f70081409f20c96a96d348031b1176c5f94 | |
parent | 045946d4ee89ea6377868f557079a6057f5692f9 (diff) | |
download | cpython-e0d9a83bea5f78964217fd1f2dd82027841c9444.zip cpython-e0d9a83bea5f78964217fd1f2dd82027841c9444.tar.gz cpython-e0d9a83bea5f78964217fd1f2dd82027841c9444.tar.bz2 |
Document PyImport_AppendInittab(), PyImport_ExtendInittab(), and
struct _inittab.
This closes SourceForge bug #111499.
-rw-r--r-- | Doc/api/api.tex | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/Doc/api/api.tex b/Doc/api/api.tex index c8731c9..3c313c5 100644 --- a/Doc/api/api.tex +++ b/Doc/api/api.tex @@ -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}} |