#ifndef HALIDE_PYTHON_BINDINGS_PYHALIDE_H #define HALIDE_PYTHON_BINDINGS_PYHALIDE_H #include #include #include #include // Some very-commonly-used headers here, to simplify things. #include #include #include // Everyone needs Halide.h #include "Halide.h" namespace Halide { namespace PythonBindings { namespace py = pybind11; template std::vector args_to_vector(const py::args &args, size_t start_offset = 0, size_t end_offset = 0) { if (args.size() < start_offset + end_offset) { throw py::value_error("Not enough arguments"); } std::vector v; v.reserve(args.size() - (start_offset + end_offset)); for (size_t i = start_offset; i < args.size() - end_offset; ++i) { v.push_back(args[i].cast()); } return v; } } // namespace PythonBindings } // namespace Halide #endif // HALIDE_PYTHON_BINDINGS_PYHALIDE_H