#pragma once #include #include #include namespace pybind11::detail { using torch::profiler::impl::TensorID; #define STRONG_POINTER_TYPE_CASTER(T) \ template <> \ struct type_caster : public strong_pointer_type_caster {}; STRONG_POINTER_TYPE_CASTER(torch::profiler::impl::StorageImplData); STRONG_POINTER_TYPE_CASTER(torch::profiler::impl::AllocationID); STRONG_POINTER_TYPE_CASTER(torch::profiler::impl::TensorImplAddress); STRONG_POINTER_TYPE_CASTER(torch::profiler::impl::PyModuleSelf); STRONG_POINTER_TYPE_CASTER(torch::profiler::impl::PyModuleCls); STRONG_POINTER_TYPE_CASTER(torch::profiler::impl::PyOptimizerSelf); #undef STRONG_POINTER_TYPE_CASTER template <> struct type_caster : public strong_uint_type_caster {}; } // namespace pybind11::detail namespace torch::profiler { void initPythonBindings(PyObject* module); } // namespace torch::profiler