Introduction
Python 3.15 est arrivé avec son lot de nouvelles fonctionnalités impressionnantes, mais parmi les gros titres, certaines subtilités méritent une analyse approfondie. Ces améliorations, bien que discrètes, peuvent avoir un impact significatif sur votre code au quotidien.
Annulations de TaskGroup dans Asyncio
Avec Python 3.15, asyncio se dote d'une fonctionnalité clé : la possibilité d'annuler un TaskGroup proprement. Avant cette version, gérer les interruptions dans un TaskGroup nécessitait une gymnastique complexe avec des exceptions personnalisées. Désormais, il suffit de :
``python async with asyncio.TaskGroup() as tg: tg.create_task(run()) tg.create_task(run()) if await wait_for_signal(): tg.cancel() ``
Cette simplicité réduit le risque d'erreurs et facilite la gestion des tâches asynchrones.
Améliorations des gestionnaires de contexte
Les gestionnaires de contexte sont maintenant plus polyvalents. Saviez-vous qu'ils peuvent aussi être utilisés comme décorateurs ? Cela simplifie la mesure du temps d'exécution :
``python @contextmanager def duration(message: str) -> Iterator[None]: start = time.perf_counter() try: yield finally: print(f"{message} elapsed {time.perf_counter() - start:.2f} seconds") ``
Cette fonction peut désormais s'appliquer directement à des fonctions asynchrones, ce qui n'était pas possible auparavant.
Gestion des exceptions asynchrones
Une autre amélioration discrète concerne la gestion des exceptions dans les fonctions asynchrones, qui est devenue plus intuitive. Cela permet de mieux structurer le code et de réduire les bugs potentiels.
Conclusion
Python 3.15 nous offre des outils non seulement puissants mais aussi pratiques pour les développeurs. Ces petites fonctionnalités, souvent éclipsées par les grandes annonces, peuvent pourtant significativement améliorer votre productivité. Pour en savoir plus et intégrer ces nouveautés dans vos projets, discutons de ton projet en 15 minutes.