]> granicus.if.org Git - python/commitdiff
Removed reference to the out-of-date (and not very useful)
authorJim Fulton <jim@zope.com>
Fri, 16 May 2003 13:32:59 +0000 (13:32 +0000)
committerJim Fulton <jim@zope.com>
Fri, 16 May 2003 13:32:59 +0000 (13:32 +0000)
Objects/xxobject.c example.

Updated the discussion of type checking to refer to
PyObject_TypeCheck.

Doc/ext/newtypes.tex

index 6b8a25d73874766c9b246fb72f1dbb148180757e..3d611c19cf427b0bb1399aea98859388e2202584 100644 (file)
@@ -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}