L'EDI Python PyCharm s'accompagne de la prise en charge de Python 3.11,
améliorations apportées à l'interface utilisateur et au client HTTP

PyCharm 2022.2 est déjà équipé d'un aperçu du code pour certaines fonctionnalités majeures de Python 3.11, telles que les groupes d'exceptions et l'opérateur except* (PEP 654), et les nouvelles notations Required[] et NotRequired[] pour les clés TypedDict individuelles (PEP 655).

Selon JetBrains, « Travailler avec des technologies nouvelles et en évolution rapide peut être difficile car vous vous retrouvez souvent à lire de la documentation et à vous habituer à de nouvelles syntaxes, API et protocoles. PyCharm 2022.2 vous aidera dans ce voyage en prenant en charge les fonctionnalités du langage Python 3.11 et le nouveau framework PyScript ».

Python 3.11

Python est un langage de programmation interprété, multi-paradigme et multi-plateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.

Python 3.11 est actuellement dans la première phase bêta de sa Preview avant sa version stable prévue pour octobre 2022.

Cette version apporte de nouvelles fonctionnalités et améliorations parmi lesquelles :
  • Les groupes d'exceptions, qui permettront aux programmes de déclencher et de gérer plusieurs exceptions en même temps
  • Les groupes de tâches, pour améliorer la façon dont vous exécutez le code asynchrone
  • Les messages d'erreur améliorés, qui vous aideront à déboguer plus efficacement votre code
  • Les optimisations, promettant de rendre Python 3.11 nettement plus rapide que les versions précédentes
  • Les améliorations du typage statique, qui vous permettront d'annoter votre code plus précisément

Prise en charge de PEP 654 : groupes d'exception

La gestion des exceptions est une partie importante de la programmation. Parfois, des erreurs se produisent à cause de bogues dans votre code. Dans ces cas, de bons messages d'erreur vous aideront à déboguer votre code efficacement. D'autres fois, des erreurs se produisent sans faute de votre code. Peut-être que l'utilisateur essaie d'ouvrir un fichier corrompu, peut-être que le réseau est en panne, ou peut-être que l'authentification à une base de données est manquante.

Habituellement, une seule erreur se produit à la fois. Il est possible qu'une autre erreur se soit produite si votre code avait continué à s'exécuter. Mais Python ne signalera généralement que la première erreur rencontrée. Il y a des situations où il est logique de signaler plusieurs bogues à la fois :
  • Plusieurs tâches simultanées peuvent échouer en même temps.
  • Le code de nettoyage peut provoquer ses propres erreurs.
  • Le code peut essayer plusieurs alternatives différentes qui génèrent toutes des exceptions.

Dans Python 3.11, une nouvelle fonctionnalité appelée groupes d'exceptions est disponible. Il fournit un moyen de regrouper des exceptions non liées et il est fourni avec une nouvelle syntaxe except* pour les gérer. La PEP 654 a été écrite et implémentée par Irit Katriel, l'un des principaux développeurs de CPython, avec le soutien du responsable asynchrone Yury Selivanov et de l'ancien BDFL Guido van Rossum. Elle a été présenté et discuté lors du Python Language Summit en mai 2021.

À l'approche de la sortie officielle de Python 3.11, JetBrains a commencé à implémenter la prise en charge de ses nouvelles fonctionnalités. Dans cet EAP de PyCharm 2022.2, l'éditeur a ajouté un aperçu du code pour les nouveaux groupes d'exceptions et l'opérateur except* de la PEP 654.

Désormais, PyCharm vous avertira des combinaisons interdites, comme les opérateurs except et except* dans la même instruction try, ou les opérateurs continue, break et return dans les clauses except*. Il vous avertira également si vous essayez d'attraper un ExceptionGroup dans une clause try*. JetBrains encourage les développeurs à essayer cette fonctionnalité s'ils travaillent déjà avec Python 3.11.

Nom : python311_exception_groups.gif
Affichages : 36492
Taille : 1,61 Mo

Client HTTP

PyCharm 2022.2 prend en charge les connexions WebSocket. Avec cette API, vous pouvez envoyer des messages à un serveur et recevoir des réponses basées sur des événements sans avoir à interroger le serveur pour obtenir une réponse. PyCharm peut désormais envoyer des requêtes via les protocoles HTTP et WebSocket prêts à l'emploi. ws:// et wss:// sont désormais délégués à l'exécuteur WebSocket.

Nom : http_websockets.gif
Affichages : 913
Taille : 1,04 Mo

De plus, il existe un moyen plus simple de sélectionner un environnement d'exécution - en utilisant une icône sur la gouttière. Pour activer cette fonctionnalité, choisissez l'option Sélectionner l'environnement avant l'exécution dans la zone de liste déroulante Exécuter avec.

Une nouvelle interface utilisateur pour configurer des interprètes à distance

PyCharm 2022.2 introduit un nouvel assistant pour configurer des interpréteurs sur des cibles distantes (telles que WSL, SSH, Docker, Docker Compose ou Vagrant). Cela rend le processus de configuration plus structuré et facile à suivre. Pour accéder au nouvel assistant, accédez à Paramètres | Préférences / Python Interpreter et cliquez sur le lien Add Interpreter dans le coin supérieur droit de la fenêtre, ou cliquez sur l'interpréteur dans le coin inférieur droit de l'éditeur et sélectionnez Add New Interpreter.

Exécuter le fichier actuel

Pour exécuter et déboguer instantanément un seul fichier sans configuration d'exécution dédiée, utilisez Exécuter le fichier actuel, qui est disponible à partir du widget Exécuter/Déboguer. Il comporte un menu secondaire qui propose des programmes d'exécution applicables ainsi que l'action Exécuter avec des paramètres, qui vous permet de régler les paramètres de configuration d'exécution avant d'exécuter le fichier.

Prise en charge initiale de PyScript

PyScript est un framework permettant de créer des applications Python riches dans le navigateur à l'aide d'une interface HTML et de la puissance de Pyodide, WASM et des technologies Web modernes.

La balise <py-script> vous permet d'exécuter des scripts Python multilignes et d'interagir avec la page. PyCharm 2022.2 reconnaît la syntaxe Python, y compris les bibliothèques NumPy et Matplotlib, pour le code à l'intérieur des balises <py-script> dans les fichiers HTML et fournit une complétion et une mise en surbrillance appropriées du code.

La complétion de code et la coloration syntaxique sont désormais disponibles pour les balises PyScript telles que <py-env> pour déclarer les dépendances et <py-repl> pour créer des composants REPL.

Gestion de base de données

PyCharm 2022.2 vous permet d'importer plusieurs CSV dans des tables de base de données nouvelles ou existantes. Pour ce faire, sélectionnez plusieurs fichiers dans la vue du projet et faites-les glisser vers un schéma de base de données.

Il existe deux modes de résolution pour vos scripts SQL dans PyCharm 2022.2. En mode Playground, les objets sont résolus en fonction du contexte. C'est maintenant la valeur par défaut pour les consoles de requête. En mode Script, le début du fichier est résolu en contexte, mais toutes les instructions SET CURRENT SCHEMA du script modifient le contexte de la résolution. Le mode script est maintenant le mode par défaut pour les fichiers locaux. Pour basculer entre les modes, utilisez simplement le menu déroulant de la barre d'outils.

Docker

Vous pouvez désormais facilement copier des images d'un démon Docker à un autre à l'aide de la nouvelle action Copier l'image Docker qui enregistre l'image dans un fichier, puis la pousse vers la connexion choisie. PyCharm s'intègre également à Colima et Racher pour prendre en charge davantage d'options pour établir des connexions à un démon Docker.

De plus, PyCharm 2022.2 se connecte automatiquement à Docker après le redémarrage de l'IDE. Ce nouveau paramètre est activé par défaut et peut être activé dans Paramètres / Préférences | Paramètres avancés | Docker.

Prise en charge WSL améliorée

Depuis des années, le sous-système Windows pour Linux (WSL) facilite la vie des développeurs, administrateurs système et amateurs qui ont un pied dans le monde Windows et un pied dans le monde Linux.

L'année dernière, Microsoft a présenté une évolution de WSL : WSL 2. Cette nouvelle version de l’architecture qui permet au sous-système Windows pour Linux d’exécuter des fichiers binaires ELF64 Linux sous Windows utilise un véritable noyau Linux, modifie la façon dont ces binaires Linux interagissent avec Windows et le matériel de votre ordinateur, tout en offrant la même expérience utilisateur que dans WSL 1. WSL 2 offre des performances de système de fichiers beaucoup plus rapides et une compatibilité totale des appels système, ce qui vous permet d'exécuter davantage d'applications comme Docker!

Cette nouvelle version de WSL 2 utilise les fonctionnalités Hyper-V pour créer une machine virtuelle légère avec un noyau Linux minimal. Il faut s’attendre à une meilleure compatibilité avec les logiciels Linux, y compris la prise en charge de Docker, et « une augmentation spectaculaire des performances du système de fichiers ».

Dans la version 2021.1, JetBrains a ajouté la possibilité de travailler avec des projets stockés sur le système de fichiers WSL 2 sans avoir à les copier sur votre système de fichiers Windows. Cette même version a donné à PyCharm la capacité de détecter l'interpréteur WSL. Si aucun interpréteur WSL n'est configuré pour votre projet, PyCharm recherchera des interpréteurs système et les définira automatiquement comme interpréteur par défaut. De plus, vous pouvez ouvrir n'importe quel répertoire dans \\wsl$ avec PyCharm. Si PyCharm détecte un fichier Python dans le répertoire, il suggérera de créer un interpréteur basé sur WSL.

Désormais, avec PyCharm 2022.2, JetBrains va introduire des améliorations significatives pour travailler avec WSL. En particulier, la génération et la mise à jour des squelettes pour les interpréteurs WSL 2 seront plus rapides, ce qui accélérera évidemment le travail avec WSL en général.

De plus, vous pourrez configurer des environnements virtuels et exécuter des notebooks Jupyter sur WSL à partir de PyCharm.

En savoir plus sur PyCharm 2022.2