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