Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft dévoile Pylance, sa nouvelle extension Python pour Visual Studio Code,
Pour une prise en charge plus rapide et plus complète du langage Python dans l'éditeur de code

Le , par Stan Adkens

93PARTAGES

6  0 
Microsoft a annoncé mardi dernier son nouveau serveur de langage pour Python, Pylance, qui vise à aider les programmeurs à écrire un meilleur code Python et à améliorer la prise en charge du langage par IntelliSense et Visual Studio Code. Pylance ne remplace pas pour l’instant l'extension Python existante de Microsoft, il fonctionne plutôt avec elle afin d'apporter aux développeurs Python une vérification de type et une analyse de programme plus rapides.

Disponible gratuitement sur le Marketplace de Visual Studio, Pylance est une implémentation du protocole de serveur de langage et utilise Pyright, l'outil de vérification statique de type de Microsoft, pour fournir une vérification encore plus rapide. La nouvelle extension fournit également des informations en direct sur les symboles, l'autocomplétion, l’auto-importation, la description du code et la navigation, ainsi que d'autres outils pour le développement Python.


L'équipe Python de Microsoft a lancé en 2018 Python Language Server, apportant ainsi à Visual Studio Code le riche support de Python IntelliSense. Selon Microsoft, depuis le lancement de la première version, la communauté Python dans ses commentaires a suggéré à l’éditeur de logiciel la manière dont il pouvait améliorer l'expérience des utilisateurs du serveur de langage Python. C’est ainsi qu’au cours des derniers mois, Microsoft a travaillé pour apporter ce nouveau serveur de langage Pylance.

« Pylance exploite les stubs de type (fichiers .pyi) et les inférences de type paresseux pour offrir une expérience de développement très performante. Pylance suralimente votre expérience Python IntelliSense avec de l’information sur le type, vous aidant ainsi à écrire un meilleur code, plus rapidement », lit-on dans un article de blog publié par Microsoft mardi dernier.

Selon Microsoft, Pylance fonctionne avec les ordinateurs portables Jupyter, lorsque ceux-ci sont utilisés dans un projet. Il peut également utiliser des stubs de type personnalisé à partir d'un répertoire de projet avec l'option python.analysis.stubPaths. Les espaces de travail, les utilisateurs ou les projets peuvent personnaliser les erreurs qui sont signalées sur une base de code et le niveau de gravité à leur attribuer. Par exemple, si vous avez beaucoup de codes qui créent des variables de manière conditionnelle, et dont vous savez qu'ils ne créent pas de problèmes, vous pouvez désactiver l'option reportUnboundVariable pour éviter de signaler ce code, d’après Microsoft.

Selon Microsoft, Pylance remplacera à terme Microsoft Python Language Server. Pour l'instant, Microsoft ne prévoit pas de le rendre open source, a déclaré la gestionnaire de programme chez Microsoft Savannah Ostrowski dans son billet, ce qui exclut l'utilisation de Pylance avec des éditeurs tiers. C'est une décision un peu surprenante, dans la mesure où Ostrowski a aussi écrit :

« Pylance représente une amélioration drastique pour l'expérience Python dans Visual Studio Code, à laquelle notre équipe a consacré des mois de travail. Le nouveau serveur de langage libre offre des performances accrues et de nombreuses autres fonctionnalités. De ce fait, notre équipe se concentrera sur Pylance pour continuer à le faire évoluer ».

En plus de fournir des informations sur le type dans les signatures de fonctions et lors du survol de symboles, Pylance fournit également des suggestions d'importation intelligente pour les modules de bibliothèques disponibles et standard.


Lorsque la fonction d'auto-importation est activée, elle insère automatiquement les importations appropriées pour les bibliothèques reconnues dans le chemin de recherche de Pylance. Si vous tapez gc.disable() par exemple, Pylance en déduira que vous faites référence au module gc de la bibliothèque standard, et ajoutera automatiquement l'import gc au besoin en haut de votre projet.

Selon Ostrowski, « vous pouvez essayer le mode de vérification de type de Pylance en réglant python.analysis.typeCheckingMode sur basic ou strict. Ce paramètre utilise la vérification de type de Pyright pour appliquer un ensemble de règles de base ou complètes sur votre base de code, respectivement. Les diagnostics produits par ce mode peuvent contribuer à améliorer la qualité de votre code et vous aider à trouver plus facilement les cas limites ».


Parmi les autres paramètres utiles, citons python.analysis.diagnosticSeverityOverrides, qui permet à un utilisateur de modifier les niveaux de gravité pour des diagnostics individuels, python.analysis.stubPaths, qui permet à un utilisateur de spécifier un chemin d'accès à un répertoire qui contient des stubs de type personnalisé, et bien d'autres encore.

Autres caractéristiques de Pylance

Pylance supporte les espaces de travail multi-root de Visual Studio Code, ce qui signifie qu'il fonctionnera de manière transparente sur plusieurs dossiers ouverts au sein d'une même session Visual Studio Code. Pylance offre également d'autres fonctionnalités, telles que des chaînes de documents, des suggestions de paramètres, un aperçu du code et une navigation, et bien plus encore.

Dans la plupart des cas, selon Microsoft, Pylance devrait fonctionner tel quel avec les projets existants, mais il peut nécessiter une configuration spéciale dans certains cas. Par exemple, si Pylance signale des importations dans un projet et affirme qu'elles sont introuvables, vous devrez peut-être personnaliser le chemin de recherche de Pylance pour le projet en ajoutant l'attribut python.analysis.extraPaths dans settings.json.

Selon Ostrowski, si vous êtes un utilisateur de l'extension Pyright dans VS Code, vous pouvez désinstaller Pyright lors de l'installation de Pylance, car toutes les fonctionnalités de Pyright sont incluses dans Pylance. Selon le gestionnaire de programme Python Language Server et Python in Visual Studio chez Microsoft, en ayant les deux extensions installées, vous pouvez rencontrer des conflits d'installation et voir des diagnostics redondants (par exemple, des erreurs, des avertissements) apparaître dans votre code.

Source : Microsoft

Et vous ?

Que pensez-vous de Microsoft Pylance ?
Utilisiez-vous l'extension Python existante de Microsoft ? Quelles sont les nouveautés ajoutées à Pylance qui retiennent votre attention ?

Voir aussi :

Visual Studio Code 1.46 est disponible et permet le déplacement des vues entre la barre latérale et le panneau, et intègre une prise en charge améliorée des liens
Les outils Cordova débarquent sur Visual Studio Code sous forme d'extension, pour faciliter le développement d'applications mobiles cross-platform
Il est désormais possible de créer des pull requests GitHub dans Visual Studio Code, l'extension GitHub PR qui se dote de nouvelles fonctionnalités
Visual Studio Code 1.45 est disponible et apporte des améliorations au débogueur JavaScript qui est en préversion, ainsi qu'une mise en évidence plus rapide des syntaxes

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de danielhagnoul
Rédacteur https://www.developpez.com
Le 06/07/2020 à 22:30


Pour l'instant (2 jours d'utilisation), je suis très satisfait de Pylance

Selon Ostrowski, si vous êtes un utilisateur de l'extension Pyright dans VS Code, vous pouvez désinstaller Pyright lors de l'installation de Pylance, car toutes les fonctionnalités de Pyright sont incluses dans Pylance.

Je conseille fortement de désinstaller Pyright avant d'installer Pylance.

Selon Ostrowski, « vous pouvez essayer le mode de vérification de type de Pylance en réglant python.analysis.typeCheckingMode sur basic ou strict.

Pour retrouver le comportement de Pyright, il faut activer la préférence typeCheckingMode en cliquant sur "Fichiers" -> "Préférences" -> "Paramètres" -> "Extensions" -> "Pylance configuration". Ensuite, passez l'option "Python › Analysis: Type Checking Mode Defines the default rule set for type checking." sur "basic".

EDIT

J'ai l'impression que la version de Pyright incluse dans Pylance n'a pas été améliorée, car j'y trouve toujours les mêmes signalements d'erreurs farfelus.

Par exemple :

Code Python : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from rich.console import Console  # https://pypi.org/project/rich/ 
  
from dateutil.tz import gettz 
import datetime as dt 
import locale 
  
c = Console() 
  
locale.setlocale(locale.LC_ALL, ('fr_FR', 'UTF-8')) 
tzi = gettz('Europe/Brussels') 
  
c.print('[cyan]{} {}[/cyan]'.format( 
    'danielhagnoul', dt.datetime.now(tz=tzi).isoformat())) 
  
# --------------- 
  
c.print(locals())

Dans ce code dt.datetime.now(tz=tzi) est souligné en rouge et le problème reporté est
No overloads for "dt.datetime.now(tz=tzi)" match parameters
Argument types: (tzinfo | None)

Alors que : print(isinstance(tzi, tzinfo)) # True
0  0