mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-07-26 15:51:26 +00:00
Feature: 细化内置驱动器请求参数中的超时控制颗粒度 (#3571)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Ju4tCode <42488585+yanyongyu@users.noreply.github.com>
This commit is contained in:
@ -27,5 +27,7 @@ from .model import RawURL as RawURL
|
||||
from .model import Request as Request
|
||||
from .model import Response as Response
|
||||
from .model import SimpleQuery as SimpleQuery
|
||||
from .model import Timeout as Timeout
|
||||
from .model import TimeoutTypes as TimeoutTypes
|
||||
from .model import WebSocket as WebSocket
|
||||
from .model import WebSocketServerSetup as WebSocketServerSetup
|
||||
|
@ -30,6 +30,7 @@ from .model import (
|
||||
QueryTypes,
|
||||
Request,
|
||||
Response,
|
||||
TimeoutTypes,
|
||||
WebSocket,
|
||||
WebSocketServerSetup,
|
||||
)
|
||||
@ -245,7 +246,7 @@ class HTTPClientSession(abc.ABC):
|
||||
headers: HeaderTypes = None,
|
||||
cookies: CookieTypes = None,
|
||||
version: Union[str, HTTPVersion] = HTTPVersion.H11,
|
||||
timeout: Optional[float] = None,
|
||||
timeout: TimeoutTypes = None,
|
||||
proxy: Optional[str] = None,
|
||||
):
|
||||
raise NotImplementedError
|
||||
@ -315,7 +316,7 @@ class HTTPClientMixin(ForwardMixin):
|
||||
headers: HeaderTypes = None,
|
||||
cookies: CookieTypes = None,
|
||||
version: Union[str, HTTPVersion] = HTTPVersion.H11,
|
||||
timeout: Optional[float] = None,
|
||||
timeout: TimeoutTypes = None,
|
||||
proxy: Optional[str] = None,
|
||||
) -> HTTPClientSession:
|
||||
"""获取一个 HTTP 会话"""
|
||||
|
@ -42,6 +42,7 @@ FileTypes: TypeAlias = Union[
|
||||
FileType,
|
||||
]
|
||||
FilesTypes: TypeAlias = Union[dict[str, FileTypes], list[tuple[str, FileTypes]], None]
|
||||
TimeoutTypes: TypeAlias = Union[float, "Timeout", None]
|
||||
|
||||
|
||||
class HTTPVersion(Enum):
|
||||
@ -50,6 +51,15 @@ class HTTPVersion(Enum):
|
||||
H2 = "2"
|
||||
|
||||
|
||||
@dataclass
|
||||
class Timeout:
|
||||
"""Request 超时配置。"""
|
||||
|
||||
total: Optional[float] = None
|
||||
connect: Optional[float] = None
|
||||
read: Optional[float] = None
|
||||
|
||||
|
||||
class Request:
|
||||
def __init__(
|
||||
self,
|
||||
@ -64,7 +74,7 @@ class Request:
|
||||
json: Any = None,
|
||||
files: FilesTypes = None,
|
||||
version: Union[str, HTTPVersion] = HTTPVersion.H11,
|
||||
timeout: Optional[float] = None,
|
||||
timeout: TimeoutTypes = None,
|
||||
proxy: Optional[str] = None,
|
||||
):
|
||||
# method
|
||||
@ -76,7 +86,7 @@ class Request:
|
||||
# http version
|
||||
self.version: HTTPVersion = HTTPVersion(version)
|
||||
# timeout
|
||||
self.timeout: Optional[float] = timeout
|
||||
self.timeout: TimeoutTypes = timeout
|
||||
# proxy
|
||||
self.proxy: Optional[str] = proxy
|
||||
|
||||
|
Reference in New Issue
Block a user