Short version
I recently came across some Python code in which the return type for a function was specified as PyObject in the document
PyObject
A PyObject is in fact just a Python object at the C level. And since integers in Python are objects, they are also PyObjects. It doesn't matter whether it was written in Python or in C, it is a PyObject at the C level regardless.