Que fait dataverse-python-advanced-patterns ?
Génère du code de production pour le SDK Dataverse en utilisant des motifs avancés, une gestion des erreurs et des techniques d'optimisation.
Aperçu
Cette compétence permet de générer du code Python prêt pour la production, optimisé pour le SDK Microsoft Dataverse. Elle implémente des motifs avancés tels que la gestion des transactions, le traitement par lots, la mise en cache, et la gestion robuste des erreurs avec des retries exponentielles. Le code produit suit les meilleures pratiques de performance et de fiabilité.
Utilisation
from dataverse_advanced_patterns import DataverseClient
client = DataverseClient(environment_url="https://your-env.crm.dynamics.com")
# Exemple de génération de code de production
result = client.create_record("account", {
"name": "Exemple Compte",
"revenue": 1000000
})
print(f"Compte créé avec l'ID : {result['id']}")
Fonctionnalités
- Gestion des erreurs : Retry avec backoff exponentiel, logs détaillés, et rapports d'erreurs.
- Optimisation des performances : Mise en cache des requêtes fréquentes, traitement par lots des opérations.
- Motifs avancés : Utilisation de modèles de conception comme Repository, Unit of Work, et Factory.
Configuration
Pour utiliser cette compétence, configurez les variables d'environnement suivantes :
export DATAVERSE_URL="https://your-env.crm.dynamics.com"
export DATAVERSE_CLIENT_ID="your-client-id"
export DATAVERSE_CLIENT_SECRET="your-client-secret"
Dépendances
dataverse-sdk-python>= 1.0.0requests>= 2.25.0tenacity>= 8.0.0 (pour la gestion des retries)
Exemples supplémentaires
Mise à jour par lots
batch = client.create_batch()
batch.add_update("account", "id1", {"name": "Nouveau Nom"})
batch.add_update("account", "id2", {"name": "Autre Nom"})
batch.execute()
Gestion des erreurs avec retry
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
def create_account_safe(name):
return client.create_record("account", {"name": name})
Références
- Documentation officielle de Dataverse SDK : lien
- Dépôt GitHub : github/dataverse-python-advanced-patterns