summaryrefslogtreecommitdiffstats
path: root/Doc/ext
diff options
context:
space:
mode:
authorJim Fulton <jim@zope.com>2003-05-16 13:32:59 (GMT)
committerJim Fulton <jim@zope.com>2003-05-16 13:32:59 (GMT)
commitaea763bde758a127acfa1a2726e5c3966d238e27 (patch)
treea9939f0215c5e7ac004f9462f9633d832a101fb1 /Doc/ext
parentac826aac285a9f613b095f4214d0a36a78a243ea (diff)
downloadcpython-aea763bde758a127acfa1a2726e5c3966d238e27.zip
cpython-aea763bde758a127acfa1a2726e5c3966d238e27.tar.gz
cpython-aea763bde758a127acfa1a2726e5c3966d238e27.tar.bz2
Removed reference to the out-of-date (and not very useful)
Objects/xxobject.c example. Updated the discussion of type checking to refer to PyObject_TypeCheck.
Diffstat (limited to 'Doc/ext')
-rw-r--r--Doc/ext/newtypes.tex32
1 files changed, 9 insertions, 23 deletions
diff --git a/Doc/ext/newtypes.tex b/Doc/ext/newtypes.tex
index 6b8a25d..3d611c1 100644
--- a/Doc/ext/newtypes.tex
+++ b/Doc/ext/newtypes.tex
@@ -1334,17 +1334,10 @@ Collection}{../api/supporting-cycle-detection.html} in the
\subsection{More Suggestions}
Remember that you can omit most of these functions, in which case you
-provide \code{0} as a value.
-
-In the \file{Objects} directory of the Python source distribution,
-there is a file \file{xxobject.c}, which is intended to be used as a
-template for the implementation of new types. One useful strategy
-for implementing a new type is to copy and rename this file, then
-read the instructions at the top of it.
-
-There are type definitions for each of the functions you must
-provide. They are in \file{object.h} in the Python include
-directory that comes with the source distribution of Python.
+provide \code{0} as a value. There are type definitions for each of
+the functions you must provide. They are in \file{object.h} in the
+Python include directory that comes with the source distribution of
+Python.
In order to learn how to implement any specific method for your new
datatype, do the following: Download and unpack the Python source
@@ -1353,20 +1346,13 @@ C source files for \code{tp_} plus the function you want (for
example, \code{tp_print} or \code{tp_compare}). You will find
examples of the function you want to implement.
-When you need to verify that the type of an object is indeed the
-object you are implementing and if you use xxobject.c as an starting
-template for your implementation, then there is a macro defined for
-this purpose. The macro definition will look something like this:
-
-\begin{verbatim}
-#define is_newdatatypeobject(v) ((v)->ob_type == &Newdatatypetype)
-\end{verbatim}
-
-And, a sample of its use might be something like the following:
+When you need to verify that an object is an instance of the type
+you are implementing, use the \cfunction{PyObject_TypeCheck} function.
+A sample of its use might be something like the following:
\begin{verbatim}
- if (!is_newdatatypeobject(objp1) {
- PyErr_SetString(PyExc_TypeError, "arg #1 not a newdatatype");
+ if (! PyObject_TypeCheck(some_object, &MyType) {
+ PyErr_SetString(PyExc_TypeError, "arg #1 not a mything");
return NULL;
}
\end{verbatim}