On Thursday, August 20, 2015 17:39:12 Nicolas Dufresne wrote: > Le mardi 18 août 2015 à 16:59 -0700, Diane Trout a écrit : > > My current progress is at: > > > > https://github.com/detrout/telepathy-python > > Hmm, but telepathy-glib is fully instrospectable, you don't need > manually written bindings. To start using it, simply do: > > from gi.repository import TelepathyGLib > > Nicolas
I knew there was a gi.repostory implementation, but I wasn't sure how complete it was. In my experience many other C apis that are ported to python end up with some glue python code added on top of the C api in order to make the API look more like python. I wasn't sure how well worked out the class wrappers would be in gi.repository. The existence of the gi.repository bindings is also why I was thinking of adapting this version to more closely resemble the TelepathyQt bindings as the glib people can just use gi.repository. Also, although gi.repository is a really neat technology, there's no way to avoid the fact that the APIs implemented in gi.repository are still glib APIs. (As an aside is there any documentation about how to create a typelib?) Also, there's very little documentation available about the gi.repository bindings themselves. Not to mention the glib bindings themselves lack any sort of user guide, though API docs for the glib bindings appear to be decent. However I'm used to well written sphinx docs. E.g. compare the following: http://telepathy.freedesktop.org/doc/telepathy-glib/index.html or http://telepathy.freedesktop.org/doc/telepathy-qt/index.html to http://scikit-learn.org/stable/documentation.html And as an example drilling down to a particular api call: we have glib: http://telepathy.freedesktop.org/doc/telepathy-glib/telepathy-glib-connection-aliasing.html Qt: http://telepathy.freedesktop.org/doc/telepathy-qt/a00270.html Sphinx: http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN Sphinx has cross references, individual calls have paragraph anchor markers, there are links to the source I had been contemplating if it was possible to take the old Telepathy Developer's Manual and convert it into a sphinx tree and generate a more up- to-date user guide + api docs. (I wasn't sure how free the documentation license was) Also in trying to use the gi.repository bindings I tried the following: In [1]: from gi.repository import TelepathyGLib as tp In [2]: tp.ConnectionManager() (process:22488): tp-glib-CRITICAL **: tp_proxy_constructor: assertion 'self- >dbus_connection != NULL' failed Segmentation fault The pure python telepathy bindings have never ever segfaulted on me. I used them to repeatedly crash plasmashell, but no matter how poorly I understood the telepathy dbus bindings python never crashed. Further introspecting on the ConnectionManager object: ConnectionManager(**properties) new(dbus:TelepathyGLib.DBusDaemon, name:str, manager_filename:str=None) -> TelepathyGLib.ConnectionManager suggests it might want a dbus and str parameter, however: In [6]: tp.ConnectionManager(bus, 'foo') --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-6-b863bc8f3613> in <module>() ----> 1 tp.ConnectionManager(bus, 'foo') TypeError: GObject.__init__() takes exactly 0 arguments (2 given) It's kind of baffling how you might use that class. If that's a bug and not user error I'm on Debian using: Package: gir1.2-telepathyglib-0.12 Version: 0.24.1-1 Diane _______________________________________________ telepathy mailing list telepathy@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/telepathy