[Python-Dev] A macro for easier rich comparisons
Petr Viktorin
encukou at gmail.com
Mon Apr 27 16:02:02 CEST 2015
It seems the discussion on python-ideas, and also the patch review,
died down. So I'm posting to python-dev.
A macro like this would reduce boilerplate in stdlib and third-party C
extensions. It would ease porting C extensions to Python 3, where rich
comparison is mandatory.
#define Py_RETURN_RICHCOMPARE(val1, val2, op) \
do { \
switch (op) { \
case Py_EQ: if ((val1) == (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
case Py_NE: if ((val1) != (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
case Py_LT: if ((val1) < (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
case Py_GT: if ((val1) > (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
case Py_LE: if ((val1) <= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
case Py_GE: if ((val1) >= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
} \
Py_RETURN_NOTIMPLEMENTED; \
} while (0)
Is any of the core devs interested in this macro? Anything I can do to
help get it in?
http://bugs.python.org/issue23699
More information about the Python-Dev
mailing list