blob: 1889ca6ffd843c5f65444d3df2594de9341ad9ef [file] [log] [blame]
#include <torch/csrc/dynamo/init.h>
#include <torch/csrc/Exceptions.h>
#include <torch/csrc/dynamo/eval_frame.h>
#include <torch/csrc/dynamo/guards.h>
#include <torch/csrc/dynamo/python_compiled_autograd.h>
static struct PyModuleDef _module =
{PyModuleDef_HEAD_INIT, "torch._C._dynamo", "", -1, nullptr};
namespace torch {
namespace dynamo {
using torch::dynamo::autograd::torch_c_dynamo_compiled_autograd_init;
void initDynamoBindings(PyObject* torch) {
PyObject* dynamo = PyModule_Create(&_module);
if (dynamo == nullptr || PyModule_AddObject(torch, "_dynamo", dynamo) != 0) {
throw python_error();
}
PyObject* eval_frame = torch_c_dynamo_eval_frame_init();
if (eval_frame == nullptr ||
PyModule_AddObject(dynamo, "eval_frame", eval_frame) != 0) {
throw python_error();
}
PyObject* guards = torch_c_dynamo_guards_init();
if (guards == nullptr || PyModule_AddObject(dynamo, "guards", guards) != 0) {
throw python_error();
}
PyObject* compiled_autograd = torch_c_dynamo_compiled_autograd_init();
if (compiled_autograd == nullptr ||
PyModule_AddObject(dynamo, "compiled_autograd", compiled_autograd) != 0) {
throw python_error();
}
}
} // namespace dynamo
} // namespace torch