How can I assert from Python C code?
Posted
by
Joe
on Stack Overflow
See other posts from Stack Overflow
or by Joe
Published on 2010-12-27T20:24:01Z
Indexed on
2010/12/27
20:54 UTC
Read the original article
Hit count: 985
I'm writing a Python class in C and I want to put assertions in my debug code. assert.h
suits me fine. This only gets put in debug compiles so there's no chance of an assert failure impacting a user of the Python code*.
I'm trying to divide my 'library' code (which should be separate to the code linked against Python) so I can use it from other C code. My Python methods are therefore thinnish wrappers around my pure-C code.
So I can't do this in my 'library' code:
if (black == white)
{
PyErr_SetString(PyExc_RuntimeError, "Remap failed");
}
because this pollutes my pure-C code with Python. It's also far uglier than a simple
assert(black != white);
I believe that the Distutils compiler always sets NDEBUG
, which means I can't use assert.h
even in debug builds.
Mac OS and Linux.
Help!
*one argument I've heard against asserting in C code called from Python.
© Stack Overflow or respective owner