[Feature Request] Add async/await support to SDK
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia mappando le classi client e API sincrone esistenti menzionate nella proposta, quindi esamina come cambierebbe l’attuale trasporto basato su requests passando a httpx. Usa l’esempio AsyncJamfProClient come punto di ingresso comportamentale. Il lavoro è completato quando le versioni asincrone dei client elencati supportano la paginazione, la concorrenza e i context manager, mentre il comportamento sincrono esistente rimane invariato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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!
- Lingua principale
- Python
- Stelle
- 69
- Fork
- 16
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di macadmins/jamf-pro-sdk-python
-
[Bug] preview/mdm/commands deprecated & removed which breaks send_mdm_command_preview() method. Apertabug
macadmins/jamf-pro-sdk-python#68 · 1 commento · 1 assegnatario ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
macadmins/jamf-pro-sdk-python#55 · 1 commento ·
-
[Feature Request] Pass a model to the Classic and Pro API request methods as the return type. Apertaenhancement
macadmins/jamf-pro-sdk-python#52 · 1 commento · 2 assegnatari ·
-
enhancement feedback
macadmins/jamf-pro-sdk-python#33 · 4 commenti · 1 assegnatario ·
-
feedback
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
macadmins/jamf-pro-sdk-python#30 · 1 commento ·
Tutte le issue di macadmins/jamf-pro-sdk-python
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
anthropics/skills#1811 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
speaches-ai/speaches#678 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
datalayer/mcp-compose#42 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
conda-forge/spacy-feedstock#177 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
UKGovernmentBEIS/inspect_evals#2523 ·