On 08/12/2011 04:36 AM, John Reid wrote:
I recently upgraded to ipython 0.11. In 0.11 sys.argv entries are of
type unicode rather than string. All of my scripts that call into
boost.python extensions fail as my exposed functions expect arguments of
type std::string. Presumably I could recode all my functions to use
std::wstring and everything would work. This would be a lot of work so
for the moment, I'm encoding everything in python from unicode to
strings. I was wondering if there is a simple way to tell my
boost.python extensions to do this encoding automatically.


Hmm. You might be able to write a custom rvalue_from_python conversion from the Python unicode type to std::string. You could only do that once, and it would work everywhere, but it would mean unicode objects would be convertible to std::string everywhere, and I'm not sure that's desirable.

I don't think the from-python conversions are terribly well-documented, but you can learn a lot from boost/python/converter/rvalue_from_python_data.hpp. If you need help, just ask.

Good luck!

Jim Bosch
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to