feat: asyncio support and aiohttp transport #465
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds asyncio copies and conversions of the oauth2 libraries for
credentials and service accounts.
Most code/tests have been copy-pasted over from synchronous equivalents.
The new functional code is the aio transport abstract base
class and the aiohttp transport implementation. Asyncio requests
can be created with either the aiohttp basic API or by passing
in a ClientSession, and tokens are now refreshed asynchronously.
Asyncio requires Python >=3.5. This change adds dependencies on
aiohttp and pytest-asyncio.
Currently doesn't pass contribution guidelines because it won't work on 2.7. But I'm keeping my fingers crossed.