#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