How are you running the tests? Using tox I’m not getting that import error so try that and verify that the issue still exists.
Could you enable issues on the repository and start an initial branch for the abstraction? I suggest we keep a branch for the abstraction and when that’s done we’ll start with the asyncio branch. I’ve added a Gitter room as well for general talks regarding how to proceed, unless you prefer keeping those discussions in this mailing list? — Sent from Mailbox On Tue, May 26, 2015 at 6:34 AM, Elizaveta Guseva <[email protected]> wrote: > Hello, > I've added you as collaborator to my fork. > So for planing and dividing the work I suggest we start of by mapping the >> work needed to be done and start creating issues on the repository. >> > OK. That sounds like a plan. > Last time I worked together with a collaborator. I kept a plan in the Wiki > of gitHub in order to remember what was the last step and who is > responsible for which task. > I don't know if you'd like to use it for coordination. > https://github.com/gelisa/txdbus/wiki/Plan > I also keep some notes there too. Mainly for myself to keep track of > things. You can disregard them > My vacation doesn’t start until July really but I do have some spare time >> on the evenings on which I will work on this. >> > That's fine. > The first thing I noticed was that three tests fails on Python 3.4, these >> seems to be related to string -> bytes differences in the socket >> implementation which needs to be taken care of first. >> > Ugh, I run the tests too and saw them. I am going to look into it. > Did you have issues with import UNIXServerEndpoint/UNIXClientEndpoint in > Python 3.4? > It's looks similar to the endpoints, which can be imported in the source > file of Twisted 15.2.1. Which puzzles me. > Eliza > On Mon, May 25, 2015 at 2:59 AM, <[email protected]> wrote: >> Actually I just remembered twisted can interact with the stdlib logging >> library as well through `twisted.python.log.PythonLoggingObserver`. >> >> So I would change it to using `logging` and in the twisted interface >> implementation use that. >> >> That leaves us with twisted specific code only in: >> * protocol.py >> * client.py >> * object.py >> * endpoints.py >> >> And also the tests needs a bit of abstraction as well, preferably by >> testing the D-Bus protocol implementation by itself. >> >> — >> Sent from Mailbox <https://www.dropbox.com/mailbox> >> >> >> On Mon, May 25, 2015 at 8:41 AM, [email protected] < >> [email protected]> wrote: >> >>> I forked the project yesterday (github.com/wolfhechel/txdbus) and had >>> another look at it. >>> >>> The first thing I noticed was that three tests fails on Python 3.4, these >>> seems to be related to string -> bytes differences in the socket >>> implementation which needs to be taken care of first. >>> >>> Six is already a requirement so I would probably use that in order to >>> normalise the output from the protocols. >>> >>> Second step would be to separate all Twisted related code into its own >>> interfaces and place that code in its own package. >>> >>> From those interfaces I would create the abstraction and then create the >>> asyncio implementation on top of that. >>> >>> As for the logging, two approaches came to mind: >>> 1. Initialize logging alongside the event loop abstraction and pass the >>> log object to all involved classes. >>> 2. Setup a global logging object in txdbus.log and upon initalization >>> setup the appropriate logging facility (default to stdlib logging). >>> >>> I would prefer alternative number 1 since IMHO global objects with common >>> names (such as logger, log, logging) tend to collide with a lot of other >>> packages and increase chances of circular import dependencies. >>> >>> Since this is really your project, do you wish to start your own fork so >>> that the main code is held in your account? Otherwise I’ll just give you >>> write permission in the fork I’ve already done. >>> >>> My vacation doesn’t start until July really but I do have some spare time >>> on the evenings on which I will work on this. >>> >>> So for planing and dividing the work I suggest we start of by mapping the >>> work needed to be done and start creating issues on the repository. >>> >>> — >>> Sent from Mailbox <https://www.dropbox.com/mailbox> >>> >>> >>> On Sun, May 24, 2015 at 11:33 PM, Elizaveta Guseva <[email protected]> >>> wrote: >>> >>>> Ultimately it is your choice, but it sounds like there is interest in >>>>> this project from the txdbus community, which never hurt a project's >>>>> chances of success :) >>>> >>>> >>>> Awesome. For me, with my primary scientific programming experience, help >>>> is never bad =) >>>> >>>> OK, I'll start with planning. Will keep you updated. >>>> >>>> *Pontus,* >>>> >>>> I will start figuring out how to abstract the event loop. >>>> Do you have any specific plan of action in mind? >>>> >>>> With regards, to your plans of participation... >>>> I don't have much of the collaborative coding experience. >>>> I am not sure what would be the best way of work organization. >>>> >>>> Eliza >>>> >>>> >>>> On Sun, May 24, 2015 at 4:57 PM, Tycho Andersen <[email protected]> wrote: >>>> >>>>> On Sat, May 23, 2015 at 09:42:21PM -0400, Elizaveta Guseva 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. >>>>> >>>>> asyncio is supported in 2.7 (and <3.3), just not as an stdlib module, >>>>> so I don't think this is a big factor for us, as we already require >>>>> users to install it (qtile's event loop is asyncio based no matter >>>>> which version of python you're running). >>>>> >>>>> > 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. >>>>> >>>>> It sounds to me like you might get some help doing it in txdbus, >>>>> whereas you wouldn't doing it in dbus-python, which is a benefit. >>>>> >>>>> A pure python implementation also causes less of a problem with >>>>> distribution, although again I'm not sure this is a big concern for us >>>>> since the majority of our users are Linux with a handful of OpenBSD >>>>> folks. >>>>> >>>>> Ultimately it is your choice, but it sounds like there is interest in >>>>> this project from the txdbus community, which never hurt a project's >>>>> chances of success :) >>>>> >>>>> Tycho >>>>> >>>>> > 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 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 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.
