Les versions bêta sont destinées à donner à l'ensemble de la communauté la possibilité de tester les nouvelles fonctionnalités et les corrections de bogues, et de préparer leurs projets à prendre en charge la nouvelle version.
Les responsables de projets Python tiers sont vivement encouragés à tester la version 3.12 au cours de la phase bêta et à signaler dès que possible les problèmes constatés au Python bug tracker (https://github.com/python/cpython/issues). Bien qu'il soit prévu que la version soit complète au début de la phase bêta, il est possible que des fonctionnalités soient modifiées ou, dans de rares cas, supprimées jusqu'au début de la phase de la version candidate (lundi 2023-07-31). L'objectif est de n'avoir aucun changement d'ABI après la bêta 4 et aussi peu de changements de code que possible après la 3.12.0rc1, la première version candidate. Pour y parvenir, il sera extrêmement important de faire connaître la 3.12 autant que possible pendant la phase bêta.
N'oubliez pas qu'il s'agit d'une version préliminaire et que son utilisation n'est pas recommandée pour les environnements de production.
Principales nouveautés de la série 3.12 par rapport à la 3.11
Voici quelques-unes des principales nouveautés et modifications de Python 3.12 :
- Nouvelle syntaxe d'annotation de type pour les classes génériques (PEP 695).
- Analyse plus souple des f-string, permettant de nombreuses choses auparavant interdites (PEP 701).
- Des messages d'erreur encore améliorés. Plus d'exceptions potentiellement causées par des fautes de frappe sont maintenant suggérées à l'utilisateur.
- De nombreuses améliorations, petites et grandes, des performances (comme PEP 709).
- Prise en charge du profileur Linux perf pour signaler les noms de fonctions Python dans les traces.
- Les membres wstr et wstr_length de l'implémentation C des objets unicode ont été supprimés, conformément à la PEP 623.
- Dans le module unittest, un certain nombre de méthodes et de classes dépréciées depuis longtemps ont été supprimées. (Elles étaient dépréciées depuis Python 3.1 ou 3.2).
- Les modules smtpd et distutils, obsolètes, ont été supprimés (voir PEP 594 et PEP 632). Le paquet setuptools (installé par défaut dans virtualenvs et dans de nombreux autres endroits) continue de fournir le module distutils.
- Un certain nombre d'autres fonctions, classes et méthodes anciennes, obsolètes et dépréciées ont été supprimées.
- Les séquences d'échappement backslash invalides dans les chaînes de caractères sont désormais signalées par SyntaxWarning au lieu de DeprecationWarning, ce qui les rend plus visibles. (Elles deviendront des erreurs de syntaxe à l'avenir).
- La représentation interne des entiers a été modifiée en vue d'améliorer les performances. (Cela ne devrait pas affecter la plupart des utilisateurs puisqu'il s'agit d'un détail interne, mais cela peut poser des problèmes pour le code généré par Cython).
Pour plus de détails sur les changements apportés à Python 3.12, voir What's new in Python 3.12. La prochaine préversion de Python 3.12 sera la 3.12.0b2, actuellement prévue pour le 2023-05-29.
Source : Python 3.12.0b1
Et vous ?
Qu'en pensez-vous ?
Voir aussi
Une nouvelle version alpha de Python 3.12, plus rapide et plus légère, est désormais disponible, et apporte plusieurs améliorations au niveau du multitraitement et de la gestion des erreurs
Python 3.11 est disponible et s'accompagne d'une amélioration de la vitesse, de meilleures gestion des erreurs, du type self ainsi que des notes d'exception