SystemError: new style getargs format but argument is not a tuple

zefciu zefirek at Speacock.Pau.Apoznan.Mpl
Mon Feb 26 10:36:46 EST 2007


I am trying to embed a c function in my python script for a first time.
 When I try to call it I get an error

SystemError: new style getargs format but argument is not a tuple

Guido said on some mailing list, that it is probably an effect of the
lack of METH_VARARGS in the functions' array, but it's ok in my source
code.  Here is the full code:

#include <python2.4/Python.h>

static PyObject * mandelpixel(PyObject *self, PyObject *args)
{
	double z_real = 0, z_imag = 0, z_real2 = 0, z_imag2 = 0, c_real,
c_imag, bailoutsquare;
	int iteration_number;
	register int i;
	PyObject coord;
	if (!PyArg_ParseTuple(args, "Oid", &coord, &iteration_number,
&bailoutsquare))
		return NULL;
	if (!PyArg_ParseTuple(&coord, "dd", &c_real, &c_imag))
		return NULL;
	


	for(i = 1; i <= iteration_number; i++)
	{
		z_imag = 2 * z_real * z_imag + c_imag;
		z_real = z_real2 - z_imag2 + c_real;
		z_real2 = z_real * z_real;
		z_imag2 = z_imag * z_imag;
		if (z_real2 + z_imag2 > bailoutsquare)
			return Py_BuildValue("i", i);
	}
	return Py_BuildValue("i", 0);
}

static PyMethodDef MandelcMethods[] =
{
	{
		"mandelpixel", mandelpixel, METH_VARARGS, "check the pixel for
Mandelbrot set"
	},
	{
		NULL, NULL, 0, NULL
	}
};

PyMODINIT_FUNC initmandelc(void)
{
	(void) Py_InitModule ("mandelc", MandelcMethods);
}

int main(int argc, char **argv)
{
    Py_SetProgramName(argv[0]);
    Py_Initialize();
    initmandelc();
    return 0;
}

Greets
zefciu



More information about the Python-list mailing list