Open
Description
Scrapy now supports calling async methods from many components. It would be great to provide the option to call Scrapinghub API using async methods to avoid either blocking calls or having to work with twisted deferreds and threads.
In order to do that, there are several design decisions that needs to be taken:
Define Async interface
- Do we add an async version for each method already available?
- Do we create an
AsyncScrapinghubClient
that only provides support for async methods?
How to implement async methods
- Python coroutines
- asyncio coroutines
Possible obstacles?
If we want to use python-scrapinghub in standalone mode, will it create their own task loop? or should it expect it to be already created?
If we run it inside Scrapy, could this cause conflict issues?
I don't have much experience designing async libs so It would be great if someone with a better understanding could provide some pointers here.