[enhancment] asyncio support could be useful
asyncio support could be a nice enhancement of the project. For now the project uses requests to interact with monero wallet and daemon through rpc in a blocking fashion.
Thus a possible improvement could be to support aiohttp and asyncio for asynchronous programming.
Great idea! Non-blocking API would be great for many applications. However, I have no experience with that in Python. If you think you could start it, please go ahead.
Unfortunately, I will not have time to work on that in near future, as all my time goes to moneroexamples projects at present. But it could be good exercise and learning experience for anyone interested in modern python developments.
I have done some projects using the aiohttp library. I can look into this more, but also make no promises as life usually gets in the way of my nerd hobbies :)
Doesn't look like aiohttp supports digest authentication out of the box, only basic auth. There's a 2 year PR sitting on the project for it though: https://github.com/aio-libs/aiohttp/pull/2213
I believe the JSON RPC interfaces only accept digest auth, plus it would be preferred over plain text basic auth anyways. I'll look around for some other viable libraries that make use of non-blocking HTTP calls that support digest auth. The project only makes use of HTTP calls in one single file so implementing won't be too difficult, will probably spend more time refactoring tests :)
I don't know that I can make it asynchronous and still work with Python 2 unless we want to fork the logic and write it twice. Should we rip off the band-aid?
Py2 is going away next year, so I guess we shouldn't worry about backward incompatible changes. I can manage backporting other features for some time, as the project isn't very busy.
Let's do it on a separate branch, though.