/** * \file imperative/python/src/ops.h * MegEngine is Licensed under the Apache License, Version 2.0 (the "License") * * Copyright (c) 2014-2021 Megvii Inc. All rights reserved. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ #pragma once #include "./helper.h" #include "./enum_macro.h" #include "megdnn/opr_param_defs.h" #include "megbrain/opr/param_defs.h" #include "megbrain/imperative/ops/custom_opdef.h" namespace PYBIND11_NAMESPACE { namespace detail { #define ENUM_CASTER_DEF(name) \ template<> struct type_caster { \ PYBIND11_TYPE_CASTER(name, _(#name)); \ public: \ bool load(handle src, bool); \ static handle cast(const name& v, return_value_policy, handle); \ }; FOR_EACH_ENUM_PARAM(ENUM_CASTER_DEF) FOR_EACH_BIT_COMBINED_ENUM_PARAM(ENUM_CASTER_DEF) } // detail } // PYBIND11_NAMESPACE void init_ops(pybind11::module m); void init_custom(pybind11::module m);