I dislike PyList_New() + PyList_SET_ITEM() API since the list is immediately tracked by the GC and so calling gc.get_objects() can expose an invalid list object (ex: calling repr(list) can crash). See:
The internal PyObject * _PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) function should be made public.
cc @erlend-aasland
UPDATE: I updated the issue to request promoting _PyTuple_FromArray() instead of _PyList_FromArraySteal().
Linked PRs