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)12bool 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()23PyObject* 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