You guys should just switch to a real Asyncio (aiohttp) client implementation that actually leverages the async/await syntax. As Stephen mentioned I already did it with aiogremlin if you want to see an example. I don't control the repo anymore but there is an example implementation there with an async GLV as well: https://github.com/goblin-ogm/aiogremlin
On Fri, Apr 2, 2021 at 4:17 AM Stephen Mallette <spmalle...@gmail.com> wrote: > This is an important body of work and I think it is being done in the right > fashion. I had thought that we would completely remove the Transport > abstraction but since "it works" it seems as though there is no need at > this point. I do seem to recall that David Brown had this abstraction in > play with aoihttp in mind because aoigremlin was also developed but we > couldn't use the work here because of our endless dependence on Python 2. > With Python 2 gone in 3.5.0 we are free from that requirement. > > As for keeping Tornado around, I'm on the fence to some degree. I like > keeping the idea of keeping legacy code around for a bit between versions > but the problem in this case is that Tornado doesn't really work in 3.5.0. > It just has too many problems. i think I'm leaning toward simply removing > it. Please voice concerns for removing Tornado in the next 72 hours (April > 5, 2021, 7:15am ET) otherwise I think Lyndon should proceed with that path. > > > > On Thu, Apr 1, 2021 at 4:45 PM Lyndon Bauto <lynd...@bitquilltech.com> > wrote: > > > Hi all, > > > > I am looking to rewrite the current transport layer of the Gremlin-Python > > client to use AIOHTTP [1] instead of Tornado. My plan is to keep the > > current abstract base class the same and simply rewrite the underlying > > functions to utilize AIOHTTP. > > > > My plan is to use AIOHTTP v3.7.x, which supports Python 3.6+. This will > > deprecate support of older Python versions, but the current docker Python > > version for the repository is 3.6, so this should not pose a problem. > > > > I have done some prototyping and testing and found the rewrite fixed the > > following errors: > > > > - Event loop issues when using Tornado [2] > > - Heartbeat timeout support [3] > > - Multithreaded DriverRemoteConnection [4] > > - Build asyncio task errors [5] > > > > > > Because my plan is to rewrite the transport layer using the same abstract > > base class, we have the option of keeping the old Tornado library as is > and > > deprecating it while making the AIOHTTP implementation the default > > implementation. Otherwise we can fully remove it. I am fine with either > > option but wanted to get some other opinions on it. > > > > Please let me know your thoughts around this and I will take it all into > > consideration before generating a pull request. > > > > [1] https://github.com/aio-libs/aiohttp > > [2] https://github.com/jupyter/notebook/issues/3397 > > [3] https://issues.apache.org/jira/browse/TINKERPOP-1886 > > [4] https://issues.apache.org/jira/browse/TINKERPOP-2388 > > [5] https://issues.apache.org/jira/browse/TINKERPOP-2484 > > > > -- > > *Lyndon Bauto* > > Senior Software Developer > > Bit Quill Technologies Inc. > > lynd...@bitquilltech.com > > https://www.bitquilltech.com > > >