xref: /aosp_15_r20/external/pytorch/torch/csrc/dynamo/utils.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #include <torch/csrc/dynamo/utils.h>
2 
3 namespace torch::dynamo {
4 
5 static std::array<PyMethodDef, 1> _methods = {{
6     {nullptr,
7      nullptr,
8      0,
9      nullptr} // Sentinel value indicating the end of the array
10 }};
11 
is_instancemethod(py::object obj)12 bool is_instancemethod(py::object obj) {
13   return PyInstanceMethod_Check(obj.ptr());
14 }
15 
16 static struct PyModuleDef _module = {
17     PyModuleDef_HEAD_INIT,
18     "torch._C._dynamo.utils",
19     "Module containing C utils",
20     -1,
21     _methods.data()};
22 
torch_c_dynamo_utils_init()23 PyObject* torch_c_dynamo_utils_init() {
24   auto m = PyModule_Create(&_module);
25   if (m == nullptr)
26     return nullptr;
27 
28   auto py_m = py::handle(m).cast<py::module>();
29   py_m.def("is_instancemethod", is_instancemethod);
30   return m;
31 }
32 
33 } // namespace torch::dynamo
34