xref: /aosp_15_r20/external/pytorch/torch/csrc/utils/python_tuples.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #pragma once
2 
3 #include <torch/csrc/Exceptions.h>
4 #include <torch/csrc/python_headers.h>
5 #include <torch/csrc/utils/object_ptr.h>
6 #include <torch/csrc/utils/python_numbers.h>
7 
THPUtils_packInt64Array(PyObject * tuple,size_t size,const int64_t * sizes)8 inline void THPUtils_packInt64Array(
9     PyObject* tuple,
10     size_t size,
11     const int64_t* sizes) {
12   for (size_t i = 0; i != size; ++i) {
13     PyObject* i64 = THPUtils_packInt64(sizes[i]);
14     if (!i64) {
15       throw python_error();
16     }
17     PyTuple_SET_ITEM(tuple, i, i64);
18   }
19 }
20 
THPUtils_packInt64Array(size_t size,const int64_t * sizes)21 inline PyObject* THPUtils_packInt64Array(size_t size, const int64_t* sizes) {
22   THPObjectPtr tuple(PyTuple_New(size));
23   if (!tuple)
24     throw python_error();
25   THPUtils_packInt64Array(tuple.get(), size, sizes);
26   return tuple.release();
27 }
28