On Tue, 2012-01-24 at 10:30 +0100, Tomeu Vizoso wrote: > On Mon, Jan 23, 2012 at 17:45, Philip Withnall <[email protected]> wrote: > > On Mon, 2012-01-23 at 16:21 +0100, Frederik Elwert wrote: > >> Am Montag, den 23.01.2012, 14:40 +0000 schrieb Philip Withnall: > >> > On Mon, 2012-01-23 at 10:22 +0100, Frederik Elwert wrote: > >> > > Hello, > >> > > > >> > > I am still trying to write a Folks client in Python. Thanks again for > >> > > the fast fix for my last issue. > >> > > > >> > > Since I had some trouble getting folks 0.6.6 running on Ubuntu 11.10, I > >> > > just upgraded to 12.04, which has folks 0.6.6. Now I am trying again to > >> > > digg into the python/Folks combo. > >> > > > >> > > I tried with this simple test script: > >> > > > >> > > ----8<---- > >> > > from gi.repository import GObject > >> > > from gi.repository import Folks > >> > > > >> > > > >> > > def list_individuals(): > >> > > for key in aggregator.props.individuals.props.keys: > >> > > print aggregator.props.individuals.get(key) > >> > > > >> > > aggregator = Folks.IndividualAggregator.new() > >> > > aggregator.prepare(None, None) > >> > > > >> > > GObject.timeout_add(2000, list_individuals) > >> > > > >> > > main_loop = GObject.MainLoop() > >> > > main_loop.run() > >> > > ---->8---- > >> > > > >> > > Now I get this traceback: > >> > > > >> > > Traceback (most recent call last): > >> > > File "folkstest.py", line 6, in list_individuals > >> > > for key in aggregator.props.individuals.props.keys: > >> > > TypeError: '__main__.GeeHashMapKeySet' object is not iterable > >> > > > >> > > So the gee bindings seem not to work the python way. I read the gee API > >> > > doc, and then came up with something I had hoped would work: > >> > > > >> > > ----8<---- > >> > > def list_individuals(): > >> > > iterator = aggregator.props.individuals.props.keys.iterator() > >> > > while iterator.has_next(): > >> > > iterator.next() > >> > > key = iterator.get() > >> > > print aggregator.props.individuals.get(key) > >> > > ---->8---- > >> > > > >> > > This, however, segfaults. The issue seems to be the iterator.get() > >> > > method call. I tried to get a backtrace using gdb, but since my > >> > > debugging skills are very limited, I am not sure how useful it is. I > >> > > attached it anyways, if you need more information, please just let me > >> > > know. > >> > > >> > You should be able to trim the code down to: > >> > > >> > while iterator.next(): > >> > key = iterator.get() > >> > print aggregator.props.individuals.get(key) > >> > >> Okay, I changed my sample script accordingly. Thanks for the hint. > >> However, still segfaulting. > >> > >> > To my untrained eye, it looks like Python doesn't like the code, though, > >> > since the stack trace contains a call to "PyErr_Print". If you inspected > >> > this frame more closely (e.g. "frame 48; info locals" in gdb) that might > >> > give a hint. > >> > > >> > In any case, could you use the "backtrace full" command in gdb to get a > >> > more detailed stack trace please? > >> > >> I did this, please see the attached backtrace. > > > > Looks like you're missing debug information for Python. Could you make > > sure you've got the Python runtime debug symbols installed and get a > > better stack trace please? > > > > Hopefully then someone who knows about PyGObject can take a look at it. > > Hi, it looks like a (transfer none) annotation that should be > (transfer full) or the other way around.
Any idea as to where? In libgee or libfolks? Philip > Regards, > > Tomeu > > > Philip > > > >> > > Now I don’t know if I just used the API incorrectly, or if gee just > >> > > does > >> > > not work from Python. But I still hope to use Folks from python, and I > >> > > wanted to investigate a bit further, before I ditch everything and > >> > > start > >> > > all over with vala. > >> > > >> > Don't give up! Every problem which gets fixed as a result of using folks > >> > from Python will help everyone. > >> > >> You’re right. I just can be frustrating at times to spend all the time > >> getting the prerequisites up and running, instead of actually writing > >> code for the project. > >> > >> Anyway, thank you for your help! > >> > >> Regards > >> Frederik > >> _______________________________________________ > >> telepathy mailing list > >> [email protected] > >> http://lists.freedesktop.org/mailman/listinfo/telepathy > > > > > > _______________________________________________ > > telepathy mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/telepathy > > > _______________________________________________ > telepathy mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/telepathy
signature.asc
Description: This is a digitally signed message part
_______________________________________________ telepathy mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/telepathy
