web-dev-qa-db-fra.com

Python vérification de type dans VS Code

J'ai récemment appris à taper le module dans Python ( https://docs.python.org/3/library/typing.html ) et je m'attendais à l'utiliser pour la vérification de type statique et pour une meilleure intelligence dans VS Code, comme cela fonctionne avec TypeScript, mais je n'arrive pas à trouver d'outils/plugins qui le font réellement.

Quelles sont mes options, le cas échéant?

15
Alex Undefined

de bash

mkdir test
cd test
python3 -m venv .env
source .env/bin/activate
python -m pip install flake8
python -m pip install flake8-mypy
code ./

installer le plugin

puis installez-le dans VSCode https://marketplace.visualstudio.com/items?itemName=donjayamanne.python
et config

paramètres

./.vscode/settings.json

{
    "python.envFile": "${workspaceRoot}/.env",
    "python.pythonPath": "${workspaceRoot}/.env/bin/python",
    "python.linting.flake8Enabled": true,
    "python.linting.pylintEnabled": false
}

./.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python",
            "type": "python",
            "request": "launch",
            "stopOnEntry": false,
            "pythonPath": "${config:python.pythonPath}",
            "program": "${file}",
            "cwd": "${workspaceRoot}",
            "env": {},
            "envFile": "${workspaceRoot}/.env",
            "debugOptions": [
                "WaitOnAbnormalExit",
                "WaitOnNormalExit",
                "RedirectOutput"
            ]
        }
    ]
}

OMG, c'est Python 3 seulement!

https://pypi.python.org/pypi/flake8-mypy/17.3.

Oui, il en va de même pour mypy. Détendez-vous, vous pouvez exécuter Flake8 avec tous les plugins populaires
comme un outil parfaitement bien sous Python 3.5+ même si vous voulez analyser
Code Python 2. De cette façon, vous pourrez analyser toute la nouvelle syntaxe
pris en charge sur Python 3 mais aussi efficacement toute la syntaxe Python 2 sur
le même temps.

En créant le code exclusivement Python 3.5+, je peux me concentrer sur le
qualité des contrôles et réutilisation de toutes les fonctionnalités Nice du nouveau
versions (consultez pathlib) au lieu de gaspiller les cycles sur Unicode
compatibilité, etc.

Intégrations IDE et Linter

https://github.com/python/mypy#ide--linter-integrations

Intégrations IDE et Linter

Mypy peut être intégré dans des IDE populaires:

  • Vim: vim-mypy
  • Emacs: utiliser Flycheck et Flycheck-mypy
  • Texte sublime: SublimeLinter-contrib-mypy
  • Atom: linter-mypy
  • PyCharm: PyCharm intègre sa propre implémentation de PEP 484.

Mypy peut également être intégré dans Flake8 à l'aide de flake8-mypy.

15
qwabra

J'ai ajouté le code suivant

{
    "name": "mypy",
    "type": "python",
    "request": "launch",
    "module": "mypy",
    "args": [
        "${file}"
    ],
    "console": "integratedTerminal"
}

dans VS Code launch.json et maintenant il est visible dans la fenêtre "DEBUG". Appuyez simplement sur F5 et vous obtenez une analyse statique complète du fichier actuel.

0
Vlad Bezden