[Python-Dev] Remove METH_OLDARGS?
Georg Brandl
g.brandl at gmx.net
Sun May 28 18:36:23 CEST 2006
Neal Norwitz wrote:
> On 5/28/06, Georg Brandl <g.brandl at gmx.net> wrote:
>> In the process of reviewing and possibly extending getargs.c, I stumbled
>> over the "compatibility" flag supposedly used for METH_OLDARGS functions.
>> No code in the core uses this calling convention any more, and it has been
>> deprecated for quite a long time (since 2.2), so would it be appropriate to end
>> support for it in 2.5?
>
> There's still a ton used under Modules. Also, if no flag is
> specified, it will default to 0 (ie, METH_OLDARGS). I wonder how many
> third party modules use METH_OLDARGS directly or more likely
> indirectly.
These modules can be converted.
> I would like to get rid of the flag, but I'm not sure we can do it
> safely until 3.0.
It has been deprecated since 2.2, so it'd be no surprise if it went away. We'd
still have to support PyArg_Parse since it's a public API function and not
deprecated, but it could just convert the arguments to new style and call
PyArg_ParseTuple.
Also, it would be easy to detect METH_OLDARGS in PyCFunction_New and raise
an appropriate exception.
It's not my decision though.
Georg
More information about the Python-Dev
mailing list