extension modules in C for python, check for korrekt Object

Steve Menard steve.menard at videotron.ca
Wed Jun 2 10:23:36 EDT 2004


Torsten Mohr wrote:

> Hi,
> 
> i write a set of extension modules for python in C.
> I also use some new types that i defined there.
> 
> At the moment i write some methods that expect some
> of these types as parameters.  I now want to check
> that the right types were given as parameters.
> 
> How can i do that?
> 
> PyArg_ParseTuple only checks that an object was
> given as parameter, but not its type.
> 
> Do i need to check tp_name in the objects type?
> 
> 
> Thanks for hints,
> Torsten.
> 

The PyArg_ParseTuple method can do type checking for you, as long as 
your requirements are pretty simple.

if you method accepts only one argument, and that argument must be of a 
specific type, the following will work :

PyObject* some_method(PyObject* self, PyObject* args)
{
	PyObject* value;

	if (! PyArg_ParseTuple(args, "O!", &typeStruct, &value))
	{
		// Exception ahs already been set byt the call ... so 		
		// only return NULL
		return NULL;
	}
	...
}

typeStruct is a reference to the PyObejctType structure that defines the 
type. either the one you defined or those already available through python.

Steve



More information about the Python-list mailing list