Reflection — Python documentation

From Get docs
Python/docs/3.9/c-api/reflection

Reflection

PyObject *PyEval_GetBuiltins(void)
Return a dictionary of the builtins in the current execution frame, or the interpreter of the thread state if no frame is currently executing.
PyObject *PyEval_GetLocals(void)
Return a dictionary of the local variables in the current execution frame, or NULL if no frame is currently executing.
PyObject *PyEval_GetGlobals(void)
Return a dictionary of the global variables in the current execution frame, or NULL if no frame is currently executing.
PyFrameObject *PyEval_GetFrame(void)

Return the current thread state’s frame, which is NULL if no frame is currently executing.

See also PyThreadState_GetFrame().

int PyFrame_GetBack(PyFrameObject *frame)

Get the frame next outer frame.

Return a strong reference, or NULL if frame has no outer frame.

frame must not be NULL.

New in version 3.9.

int PyFrame_GetCode(PyFrameObject *frame)

Get the frame code.

Return a strong reference.

frame must not be NULL. The result (frame code) cannot be NULL.

New in version 3.9.

int PyFrame_GetLineNumber(PyFrameObject *frame)

Return the line number that frame is currently executing.

frame must not be NULL.

const char *PyEval_GetFuncName(PyObject *func)
Return the name of func if it is a function, class or instance object, else the name of funcs type.
const char *PyEval_GetFuncDesc(PyObject *func)
Return a description string, depending on the type of func. Return values include “()” for functions and methods, ” constructor”, ” instance”, and ” object”. Concatenated with the result of PyEval_GetFuncName(), the result will be a description of func.