"Cool, this looks good to me. (In theory I think you're also supposed to free your new py_obs reference if the subsequent PyList_Append fails, but I can't imagine that ever being a problem in practice -- it's a tiny memory leak, and it'll only happen if you're already out of memory for other reasons. Manual memory management sucks.)"
As per mconst's comment in #6
"Cool, this looks good to me. (In theory I think you're also supposed to free your new py_obs reference if the subsequent PyList_Append fails, but I can't imagine that ever being a problem in practice -- it's a tiny memory leak, and it'll only happen if you're already out of memory for other reasons. Manual memory management sucks.)"