[Feature Request] Add async/await support to SDK
还没有人认领这个 Issue。
评估
调研方向
首先梳理提案中提到的现有同步客户端和 API 类,然后检查当前基于 requests 的传输改为 httpx 后会如何变化。使用 AsyncJamfProClient 示例作为行为入口。当列出的客户端的异步版本支持分页、并发和上下文管理器,同时现有同步行为保持不变时,即可视为完成。
由索引模型根据 Issue 内容生成。
描述
Proposal
Add native asynchronous (async/await) support to the Jamf Pro SDK, enabling use with modern async Python frameworks.
Features:
- Async client classes:
AsyncJamfProClient,AsyncProApi,AsyncClassicApi,AsyncJCDS2, andAsyncWebhooksClient - Async pagination & concurrency operations
- Context manager support
Backwards compatibility is ensured as we would not be modifying existing synchronous code whatsoever.
Implementation Example
import asyncio
from jamf_pro_sdk import AsyncJamfProClient, ApiClientCredentialsProvider
async def main():
async with AsyncJamfProClient(
server="jamf.my.org",
credentials=ApiClientCredentialsProvider("client_id", "client_secret")
) as client:
# Single async operation
computers = await client.classic_api.list_all_computers()
# Concurrent operations
computer_ids = [c.id for c in computers]
async for computer in client.async_concurrent_api_requests(
handler=client.classic_api.get_computer_by_id,
arguments=computer_ids
):
print(f"{computer.general.name}")
asyncio.run(main())
[!NOTE]
To support both sync and async operations, the SDK would usehttpxinstead ofrequests. However,httpxwas built to be a viable replacement forrequests.
Additional Details
This is a follow up to this slack convo. Happy to provide additional details/examples as needed!
- 主要语言
- Python
- 星标
- 69
- 派生
- 16
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
macadmins/jamf-pro-sdk-python 的其他 Issue
-
[Bug] preview/mdm/commands deprecated & removed which breaks send_mdm_command_preview() method.可能重新可做 @liquidz00 于 410 天前认领,目前没有进行中的 PR。 未关闭bug
macadmins/jamf-pro-sdk-python#68 · 1 条评论 · 已指派 1 人 ·
-
bug
难度 3/5 1-2 天 新手友好度 38/100
macadmins/jamf-pro-sdk-python#55 · 1 条评论 ·
-
[Feature Request] Pass a model to the Classic and Pro API request methods as the return type.可能重新可做 @liquidz00 于 464 天前认领,目前没有进行中的 PR。 未关闭enhancement
macadmins/jamf-pro-sdk-python#52 · 1 条评论 · 已指派 2 人 ·
-
[Feature Request] Option to parse XML from Classic API endpoints可能重新可做 @brysontyrrell 于 1034 天前认领,目前没有进行中的 PR。 未关闭enhancement feedback
macadmins/jamf-pro-sdk-python#33 · 4 条评论 · 已指派 1 人 ·
-
feedback
难度 5/5 一周以上 新手友好度 35/100
macadmins/jamf-pro-sdk-python#30 · 1 条评论 ·
查看 macadmins/jamf-pro-sdk-python 的全部 Issue
相似的 Issue
-
bug status/needs-triage
难度 2/5 1-3 小时 新手友好度 86/100
prowler-cloud/prowler#12887 · 1 条评论 ·
维护者通常 1 天内回复
-
area: desktop platform: macos priority: p3 status: ready type: enhancement
难度 1/5 1 小时以内 新手友好度 92/100
use-agent-os/agent-os#3484 ·
维护者通常 2 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 86/100
open-telemetry/opentelemetry-python-contrib#5113 · 2 条评论 · 2 个 reaction ·
维护者通常 1 天内回复
-
external
难度 2/5 1-3 小时 新手友好度 68/100
langchain-ai/docs#6255 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复