⬆️ upgrade dependencies

This commit is contained in:
yanyongyu
2021-12-22 16:53:55 +08:00
parent 9b2fa46921
commit fecdb5367a
11 changed files with 417 additions and 508 deletions

45
nonebot/drivers/httpx.py Normal file
View File

@ -0,0 +1,45 @@
import httpx
from nonebot.typing import overrides
from nonebot.drivers._block_driver import BlockDriver
from nonebot.drivers import (
Request,
Response,
WebSocket,
HTTPVersion,
ForwardMixin,
combine_driver,
)
class HttpxMixin(ForwardMixin):
@property
@overrides(ForwardMixin)
def type(self) -> str:
return "httpx"
@overrides(ForwardMixin)
async def request(self, setup: Request) -> Response:
async with httpx.AsyncClient(
http2=setup.version == HTTPVersion.H2, follow_redirects=True
) as client:
response = await client.request(
setup.method,
str(setup.url),
content=setup.content,
headers=tuple(setup.headers.items()),
timeout=setup.timeout,
)
return Response(
response.status_code,
headers=response.headers,
content=response.content,
request=setup,
)
@overrides(ForwardMixin)
async def websocket(self, setup: Request) -> WebSocket:
return await super(HttpxMixin, self).websocket(setup)
Driver = combine_driver(BlockDriver, HttpxMixin)