Salut @tiagfernandes , en effet ta version à plus de features que la mienne.
Par contre, il y a quelques difference sur l’apisur la gestion des erreurs de connexion :
Différences principales
1. Stratégie de retry (réessai automatique)
La version Saniho utilise le décorateur @backoff.on_exception qui réessaie automatiquement en cas d’échec :
python
@backoff.on_exception(
backoff.expo, (ClientError, asyncio.TimeoutError),
max_tries=3, max_time=60
)
La version Tiago n’a aucun mécanisme de retry automatique - si une requête échoue, elle échoue directement.
2. Gestion des timeouts
La version Saniho définit explicitement un timeout :
python
self._timeout = ClientTimeout(total=30)
La version Tiago n’a pas de timeout configuré, ce qui peut bloquer indéfiniment en cas de problème réseau.
3. Gestion du cache
La version Saniho implémente un système de cache avec TTL qui peut servir de fallback en cas d’erreur :
python
if cache_key in self._cache:
_LOGGER.warning("Using stale cached data due to error.")
return self._cache[cache_key]
La version Tiago n’a aucun mécanisme de cache.
4. Gestion centralisée des requêtes
La version Saniho a une méthode _api_request() qui centralise toute la gestion d’erreurs, alors que la version Tiago répète la logique dans chaque méthode.
5. Gestion des exceptions
La version Saniho capture plus de types d’erreurs : ClientError, asyncio.TimeoutError, KeyError, ValueError, AuthenticationException
La version Tiago ne capture pratiquement aucune exception spécifique dans la plupart de ses méthodes.
…