The main reason I prefer txdbus is because of it’s pure-python implementation of the d-bus protocol.Upcoming kdbus support isn’t the real reason though, the main reason I see to keep it in a single codebase
is to utilize the same codebase for marshaling, bus implementation and introspection for both implementations. So ideally the approach would be to abstract the event loop driver and build the Twisted and asyncio implementations on top of that abstraction. That abstraction could possibly control the logging facility (however I’d rather see it use the standard logging library). Also asyncio can be used in Python 2.7, it’s called trollius. I haven’t worked with it but as far as I’ve heard it’s really just the same except from using yield from statements, which I don’t really see could be used in txdbus anyway since the event loop would have to be responsible for that. On a side note; I will most likely continue looking into abstracting txdbus at some point regardless of the choice here, since my requirements on the project I’m working on requires to keep the external dependencies to a minimum. On Sun, May 24, 2015 at 3:42 AM, Elizaveta Guseva <[email protected]> wrote: > Hi, > *Pontus,* > As I understood from the discussion you mentioned, the author of txbus > cogane wants to keep one code base in order to wait for kdbus merge. > I think it's not compatible with asyncio, because asyncio isn't supported > in 2.7. > Besides that as I saw from code txdbus relies not only on twisted event > loop but also on logger for example. I don't know how it would be possible > to separate twisted and asyncio in that framework without fork, to be. > I'm also not sure if we should worry about kdbus anytime soon, judging from > the heated discussion about merge into kernel. Maybe I am wrong. > *Tycho,* > Where do you think is better to start from txdbus or python-dbus? > Pontus listed files in txdbus which rely on Twisted. > As for python-dbus, it's: > - *bus.py -- calls for abstract async from connection.py* > - _compat.py -- None > - *connection.py -- has abstract async function* > - *_dbus.py -- asks for abstract loop* > - *decorators.py -- calls for abstract async* > - exceptions.py -- None > - *_expat_introspect_parser.py -- None* > - > *gi_service.py -- uses gobjects * > - > *glib.py -- glib.. * > - gobject_service.py -- depricated > - lowlevel.py -- None > - *mainloop -- import from glib bindings* > - *proxies.py -- uses connections' abstract async* > - *server.py **-- asks for abstract loop* > - *service.py -- calls for abstract async* > - types.py -- None > To me it seems python-dbus hid its gobject dependencies pretty well and it > might be rather easy to add asyncio without touching most of the code. > Eliza > On Sat, May 23, 2015 at 6:54 AM, <[email protected]> wrote: >> I’ve mentioned this on an issue in txdbus >> https://github.com/cocagne/txdbus/issues/11 and the author had some >> pretty good points on implementing a twisted/asyncio abstraction >> in the txdbus library. >> >> I would be willing to contribute to this as well if the decision is taken >> to simply work on top of txdbus. >> >> >> >> On Wed, May 20, 2015 at 5:01 AM, Elizaveta Guseva <[email protected]> >> wrote: >> >>> Hello Pontus, >>> >>> Oh, cool! Thanks a lot for your recommendation! >>> I will definitely look into it. >>> >>> Eliza >>> >>> On Tue, May 19, 2015 at 7:47 AM, Pontus Karlsson < >>> [email protected]> wrote: >>> >>>> Not sure on how far you've gotten on researching this, but as the model >>>> of asyncio is heavily inspired by the Twisted structure >>>> I would recommend trying to port txdbus >>>> <https://github.com/cocagne/txdbus> to asyncio. >>>> >>>> I was actually looking into doing this a month back and started to map >>>> the code structure and looking into what needs to be altered: >>>> >>>> - *authentication.py* - Zope interfaces, twisted logger >>>> - *bus.py* - twisted logger and Factory? >>>> - *client.py* - Heavy twisted usage >>>> - *endpoints.py* - Heavy twisted usage >>>> - error.py - No Twisted API usage >>>> - interface.py - No Twisted API usage >>>> - introspection.py - No Twisted API usage >>>> - marshal.py - No Twisted API usage >>>> - message.py - No Twisted API usage >>>> - *objects.py* - Zope interfaces, twisted defer >>>> - *protocol.py* - Zope interfaces, heavy twisted usage >>>> - *router.py* - Twisted log >>>> >>>> My recommended approach here is to fork it and abstract the event loop >>>> to work with both Twisted and asyncio. >>>> >>>> Den måndag 4 maj 2015 kl. 22:54:20 UTC+2 skrev Eliza Guseva: >>>>> >>>>> Hello all, >>>>> >>>>> First. Thanks a lot for choosing me as a student for your project!! >>>>> >>>>> As an international student in USA, I'm having some challenges with >>>>> bureaucratic system in my University. >>>>> It starts taking too long at the moment. So I'd better not wait even >>>>> longer and start communication now. >>>>> I have to warn: there might be issues with the system, but I'm trying >>>>> hard to get it work. >>>>> >>>>> On the brighter topic:) >>>>> As I understand it's time to read the documentation now. >>>>> Could you recommend me the reading, which suits the best for the >>>>> purposes of the project? >>>>> What source codes do you think, I should look into to get a better >>>>> understanding? >>>>> I will be asking questions, in the progress. >>>>> >>>>> Thanks a lot! >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "qtile-dev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "qtile-dev" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/qtile-dev/eica8sXohwI/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "qtile-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to a topic in the Google > Groups "qtile-dev" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/qtile-dev/eica8sXohwI/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "qtile-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
