That error means the type_id of uuid is not in the bp registry.
I think you can fix this by deriving uuid_to_python from to_python_converter, as demonstrated in the pytype_function example[1]. This will add the get_pytype function call, and on initialisation, should hopefully add what's missing: a call to `registry::lookup`[2].
Cheers,
Alex
[1] - http://www.boost.org/doc/libs/1_53_0/libs/python/doc/v2/pytype_function.html
[2] - http://www.boost.org/doc/libs/1_53_0/boost/python/converter/registry.hpp
On Wed, 08 May 2013 21:33:51 +0100, Wichert Akkerman <wichert@wiggy.net> wrote:
I am trying to expose a class with a boost::uuids::uuid member to Python. The class is pretty simple:
class Article {
public:
boost::uuids::uuid uuid;
};
which is exposed like this:
article
.def(init<boost::uuids::uuid, Article::Type>((arg("uuid")))
.def_readwrite("uuid", &Article::uuid);
and I have basic converter registered (see
https://gist.github.com/wichert/5543390 , it is a bit large to include in this email). This compiles fine and the uuid convertor works correctly when trying converting from python to C++, but trying to access the uuid property results in "TypeError: No Python class registered for C++ class boost::uuids::uuid". I don't understand why that doesn't work; does anyone see what I missed?
Wichert.