#pragma once #include #include #include #include #include namespace moveit { namespace python { template std::vector fromList(const boost::python::list& values) { boost::python::stl_input_iterator begin(values), end; return std::vector(begin, end); } template boost::python::list toList(const std::vector& v) { boost::python::list l; for (const T& value : v) l.append(value); return l; } template std::map fromDict(const boost::python::dict& values) { std::map m; for (boost::python::stl_input_iterator it(values.iteritems()), end; it != end; ++it) { const std::string& key = boost::python::extract((*it)[0]); const T& value = boost::python::extract((*it)[1]); m.insert(std::make_pair(key, value)); } return m; } template boost::python::dict toDict(const std::map& v) { boost::python::dict d; for (const std::pair& p : v) d[p.first] = p.second; return d; } } }