#pragma once #include #include #include namespace py = pybind11; namespace torch { namespace jit { inline c10::optional as_module(const py::object& obj) { if (py::isinstance( obj, py::module::import("torch.jit").attr("ScriptModule"))) { return py::cast(obj.attr("_c")); } return c10::nullopt; } inline c10::optional as_object(const py::object& obj) { if (py::isinstance( obj, py::module::import("torch.jit").attr("RecursiveScriptClass"))) { return py::cast(obj.attr("_c")); } return c10::nullopt; } } // namespace jit } // namespace torch