[David Abrahams] > Suppose I want to execute, from "C", the same steps taken by Python in > evaluating the expression > > x <= y > > I see no documented "C" API function which can do that. I'm guessing > PyObject_RichCompare[Bool] may do what I want, but since it's > undocumented I assume its untouchable. Guido? It doesn't start with an underscore, and is advertised in object.h, so that it's undocumented just means you didn't yet volunteer a doc patch <wink>. /* Return -1 if error; 1 if v op w; 0 if not (v op w). */ int PyObject_RichCompareBool(PyObject *v, PyObject *w, int op) where op is one of (also in object.h) /* Rich comparison opcodes */ #define Py_LT 0 #define Py_LE 1 #define Py_EQ 2 #define Py_NE 3 #define Py_GT 4 #define Py_GE 5 So the answer to your question is int result = PyObject_RichCompareBool(x, y, Py_LE); if (result < 0) return error_indicator; /* now result is true/false */
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4