IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual Studio Code Discussion :

Microsoft dévoile Pylance, sa nouvelle extension Python pour Visual Studio Code


Sujet :

Visual Studio Code

  1. #1
    Expert éminent sénior

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2018
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2018
    Messages : 1 548
    Points : 125 220
    Points
    125 220
    Par défaut Microsoft dévoile Pylance, sa nouvelle extension Python pour Visual Studio Code
    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

    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.

    Nom : 2.jpg
Affichages : 30588
Taille : 17,7 Ko

    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.

    Nom : 1pylance-python-language-server-1-1593897809605.gif
Affichages : 8554
Taille : 259,6 Ko

    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 ».

    Nom : 1.png
Affichages : 8679
Taille : 68,0 Ko

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    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 - Visualiser dans une fenêtre à part
    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

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. L'extension Docker pour Visual Studio Code passe en version 1.0
    Par Stéphane le calme dans le forum Visual Studio Code
    Réponses: 0
    Dernier message: 18/03/2020, 12h48
  2. Microsoft présente le serveur de langage Python dans Visual Studio Code
    Par Stéphane le calme dans le forum Visual Studio
    Réponses: 7
    Dernier message: 27/06/2019, 16h48
  3. LLVM 7 est disponible avec une nouvelle extension LLVM pour Visual Studio
    Par Christian Olivier dans le forum Clang et LLDB
    Réponses: 0
    Dernier message: 24/09/2018, 21h45
  4. Microsoft lance une extension de débogage Java pour Visual Studio Code
    Par Michael Guilloux dans le forum Visual Studio
    Réponses: 12
    Dernier message: 13/02/2018, 18h38
  5. Réponses: 0
    Dernier message: 11/05/2017, 17h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo