[Python-Dev] Baffled by PyArg_ParseTupleAndKeywords modification

"Martin v. Löwis" martin at v.loewis.de
Tue Feb 14 08:04:50 CET 2006


M.-A. Lemburg wrote:
>>It's the consequences:  nobody complains about tacking "const" on to a
>>former honest-to-God "char *" argument that was in fact not modified,
>>because that's not only helpful for C++ programmers, it's _harmless_
>>for all programmers.  For example, nobody could sanely object (and
>>nobody did :-)) to adding const to the attribute-name argument in
>>PyObject_SetAttrString().  Sticking to that creates no new problems
>>for anyone, so that's as far as I ever went.
> 
> 
> Well, it broke my C extensions... I now have this in my code:
> 
> /* The keyword array changed to const char* in Python 2.5 */
> #if PY_VERSION_HEX >= 0x02050000
> # define Py_KEYWORDS_STRING_TYPE const char
> #else
> # define Py_KEYWORDS_STRING_TYPE char
> #endif
> ...
> static Py_KEYWORDS_STRING_TYPE *kwslist[] = {"yada", NULL};
> ...

You did not read Tim's message carefully enough. He wasn't talking
about PyArg_ParseTupleAndKeywords *at all*. He only talked about
changing char* arguments to const char*, e.g. in
PyObject_SetAttrString. Did that break your C extensions also?

Regards,
Martin


More information about the Python-Dev mailing list