19#ifndef PYSTON_PYTHONCALL_H
20#define PYSTON_PYTHONCALL_H
26#include <boost/python/object.hpp>
27#include <boost/python/tuple.hpp>
53 boost::python::list py_args;
54 for (
auto& a : arguments) {
57 auto obj =
m_callable(*boost::python::tuple(py_args));
58 return boost::python::extract<T>(obj);
59 }
catch (
const boost::python::error_already_set&) {
69 template <
typename From>
71 return boost::python::object(v);
std::string repr() const override
void visit(Visitor &visitor) const override
T eval(const Context &context, const Arguments &arguments) const override
boost::python::object m_callable
PythonCall(boost::python::object callable)
virtual void enter(const NodeBase *)=0
virtual void exit(const NodeBase *)=0
thread_local Context sharedContext
boost::python::object operator()(From v) const