The py_def macro uses cmonster's Python-macro feature. This feature generates a _Pragma operator token, stringizing the arguments of the py_def macro. When this is done, any macros that happen to be in the arguments will be expanded. This may not be desirable...
For example:
#define XYZ 456
py_def(ABC(XYZ))
return 123
py_end
cmonster will barf because XYZ in the signature will be replaced with 456. So we'll get (after extracting the signature/body):
This is clearly not valid Python syntax for a function signature.