On Aug 15, 2011, at 5:35 AM, Nick Coghlan wrote:

On Mon, Aug 15, 2011 at 10:17 PM, Antoine Pitrou <solipsis@pitrou.net> wrote:
AFAICT, often with True and False:

   x = (some condition) ? Py_True : Py_False;
   Py_INCREF(x);
   return x;

And that's an idiom that works better with a Py_RETURN macro than it
would separate macros:

Py_RETURN(cond ? Py_True : Py_False);

OK, I'm persuaded that "Py_RETURN(Py_NotImplemented);" would be a
better way to handle this change: +1

I don't think that is worth it.
There is some value to keeping the API consistent with the style that has been used in the past.
So, I vote for Py_RETURN_NOTIMPLEMENTED.  There's no real need to factor this any further.
It's not hard and not important enough to introduce a new variation on return macros.
Adding another return style makes the C API harder to learn and remember.
If we we're starting from scratch, Py_RETURN(obj) would make sense.
But we're not starting from scratch, so we should stick with the precedents.


Raymond