[Telepathy] [Ulc-devs] Accessing Folks from python
frederik.elwert at web.de
Mon Dec 5 10:15:34 PST 2011
thanks for the reply.
> Le vendredi 02 décembre 2011 à 10:21 +0100, Frederik Elwert a écrit :
> > Now since we would prefer using python for our application, I was
> > wondering if it is possible to access Folks from python. I could manage
> > to import it from gi.repository, but it then fails during
> > IndividualAggregator.prepare():
> > from gi.repository import Folks
> > agg = Folks.IndividualAggregator()
> > agg.prepare()
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > File "/usr/lib/python2.7/dist-packages/gi/types.py", line 43,
> > in function
> > return info.invoke(*args, **kwargs)
> > TypeError: prepare() takes exactly 3 arguments (1 given)
> > I have seen that the generated c code has this function signature:
> > void folks_individual_aggregator_prepare
> > (FolksIndividualAggregator* self, GAsyncReadyCallback
> > _callback_, gpointer _user_data_);
> I don't think you can omit arguments with g-i/pygobject. The only
> annotation that we can set is (allow-none) but even then you have to
> pass 'None' to it.
> agg.prepare(None, None) should work. otoh, you probably want to set a
> callback to know when you can start using that aggregator...
It somehow seems to do something, but then segfaults:
(process:5627): folks-DEBUG: Using built-in backends key file '/home/frederik/.local/share/folks/backends.ini' (override with environment variable FOLKS_BACKEND_STORE_KEY_FILE_PATH)
Speicherzugriffsfehler [segmentation fault in German]
I also get a segfault when passing a python function as callback.
It might be because I’m rather new to GI, but I am a bit confused by the
API difference between C (prepare taking parameters) and Vala (prepare
as instance method taking no parameters). First, I looked at the Vala
API and assumed that Python would have a similar one.
More information about the telepathy