[Telepathy] Accessing Folks from python

Xavier Claessens xclaesse at gmail.com
Mon Dec 5 04:39:35 PST 2011

Le vendredi 02 décembre 2011 à 10:21 +0100, Frederik Elwert a écrit :
> Hello,
> with a few other guys, I am currently planning a contacts management
> application, and we would love to use Folks for this. I know that
> currently vala and GObject/C are the main targets for Folks, and GNOME
> Contacts is written in Vala.
> 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...

Xavier Claessens.

More information about the telepathy mailing list