qqbotsdk-base-py 2.2.0__tar.gz → 2.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/PKG-INFO +1 -1
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/pyproject.toml +1 -1
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/pyproject.toml.orig +1 -1
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/api/core.py +13 -7
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/README.md +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/api/agent.md +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/api/auth.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/api/gateway.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/errors/__init__.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/errors/codes.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/model/agent.md +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/model/core.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/model/sub/messages.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/model/sub/upload.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/ws/__init__.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/ws/agent.md +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/ws/client.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/ws/intents.py +0 -0
- {qqbotsdk_base_py-2.2.0 → qqbotsdk_base_py-2.2.1}/src/qqbotsdk/ws/payload.py +0 -0
|
@@ -414,8 +414,8 @@ class QQBotSession:
|
|
|
414
414
|
"""底层 aiohttp 会话, 供 WebSocket 等需要原生能力的场景使用."""
|
|
415
415
|
return self._ensure()
|
|
416
416
|
|
|
417
|
-
|
|
418
|
-
"""通用 verb 请求: 与 ``get`` / ``post``
|
|
417
|
+
def request(self, method: str, url: str, **kwargs: Any) -> _RetryingRequestContext:
|
|
418
|
+
"""通用 verb 请求: 与 ``get`` / ``post`` 等**完全同构**, 同样走 429 重试.
|
|
419
419
|
|
|
420
420
|
``method`` 可以是任意 HTTP verb, 便于按配置分发。行为与
|
|
421
421
|
``get`` / ``post`` / ``put`` / ``patch`` / ``delete`` 一致:
|
|
@@ -423,16 +423,22 @@ class QQBotSession:
|
|
|
423
423
|
- 命中 HTTP 429 时按 ``Retry-After`` / 指数退避自动重试, 最多
|
|
424
424
|
``MAX_RETRIES`` 次;
|
|
425
425
|
- 非 2xx 抛 :class:`qqbotsdk.errors.QQBotAPIError`(OpenAPI 域名下);
|
|
426
|
-
-
|
|
427
|
-
``await resp.read()``, 用完由本方法的上下文管理器释放连接::
|
|
426
|
+
- 返回可重试的请求上下文, 两种写法都支持::
|
|
428
427
|
|
|
428
|
+
# 推荐: 由上下文管理器负责释放连接
|
|
429
429
|
async with session.request("GET", "/users/@me") as resp:
|
|
430
430
|
data = await resp.json()
|
|
431
431
|
|
|
432
|
-
|
|
433
|
-
|
|
432
|
+
# 等价: 直接 await
|
|
433
|
+
resp = await session.request("GET", "/users/@me")
|
|
434
|
+
|
|
435
|
+
注意: 直接 ``await`` 拿到的响应不会自动释放, 与 aiohttp 原生语义一致,
|
|
436
|
+
建议一律用 ``async with``.
|
|
437
|
+
|
|
438
|
+
本方法刻意写成普通 ``def`` 而不是 ``async def``: 后者返回协程, 会让
|
|
439
|
+
``async with`` 直接抛 ``TypeError``, 与其它 verb 方法不一致.
|
|
434
440
|
"""
|
|
435
|
-
return
|
|
441
|
+
return self._request_context(method, url, **kwargs)
|
|
436
442
|
|
|
437
443
|
@property
|
|
438
444
|
def closed(self) -> bool:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|