[Python-Dev] Use of PyArg_NoArgs()

Neal Norwitz neal@metaslash.com
Mon, 25 Mar 2002 17:50:57 -0500


Guido van Rossum wrote:
> 
> > Python/sysmodule.c:     {"exit",     METH_OLDARGS,
> 
> This one *appears* tricky.  But in fact, changing it to METH_VARARGS
> should work just as well (I think).

The only problem I ran into just using METH_VARARGS is that 
the parameter is always printed.  So I used PyArg_ParseTuple()
and passed that object to PyErr_SetObject(PyExc_SystemExit, exit_code).
This works as before wrt printing.  However, you can no longer
pass an arbitrary number of parameters, either 0 or 1.  Is this ok?

> > On a related note, PyArg_GetInt() macro is used exactly one time--
> > in socketmodule.c  There seem to be many more places where this
> > could be used.  Should I use or remove the macro?  Or doc
> > that it should not be used?
> 
> It's deprecated, just as PyArg_NoArgs().  Now's a good time to get rid
> of the last usage instance.

Both PyArg_GetInt() & PyArg_NoArgs() both have comments above them
stating they should not be used.  There are no more occurances 
of PyArg_GetInt().  I'm working on reducing METH_OLDARGS, down to 214.

If you want I can remove them from Include/Python.h when done.  
If so, should I write up anything in NEWS?

Neal