in reply to Re: Proper usage of Inline::Python
in thread Proper usage of Inline::Python

As I pointed out to the Anonymous Monk, any combination of the constructor I've tried without having to wrap it in my own Python code results in the bless non-reference error.

Replies are listed 'Best First'.
Re^3: Proper usage of Inline::Python
by crashtest (Curate) on Oct 12, 2014 at 18:13 UTC

    I was able to reproduce your error on my system. Dug into it a bit with the debugger, and I found that the non-reference object being blessed is this string:

    '<hyperdex.client.Client object at 0x7fa3f1c0c560>'
    My guess is that it's a bug in Inline::Python's conversion magic or something unexpected in the Hyperdex libary. The Python object is being created properly, but somewhere it's been converted to a string representation. I really don't know enough Python to hazard a guess as to what's really going on here.

    Might be worth filing a bug report for Inline-Python. The Python library Hyperdex installs is a shared library file, not a traditional .py or .pyc module, and I wonder if that perhaps has something to do with it. At least you already have a work-around.

      Yeah, I've had to expand it a bit more, since some of the function calls return Iterables which I::P doesn't seem to have automagic for yet. I've basically just wrapped the function to return it as a list. I'll see if I can find a basic test case and file a bug for it.