Недавно я узнал о наборе модуля в Python (https://docs.python.org/3/library/typing.html) и ожидал использовать его для проверки статического типа и для лучшего intellisense в VS Code, например, он работает с TypeScript, но я не могу найти никаких инструментов/плагинов, которые на самом деле это делают.
Каковы мои варианты, если они есть?
Ответ 1
от 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 ./
установить плагин
затем установите это в VSCode https://marketplace.visualstudio.com/items?itemName=donjayamanne.python
и конфигурация
настройки
./.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, это только Python 3!
https://pypi.python.org/pypi/flake8-mypy/17.3.3
Да, это тоже. Расслабьтесь, вы можете запустить Flake8 со всеми популярными плагинами
как инструмент отлично под Python 3. 5+, даже если вы хотите проанализировать
Код Python 2. Таким образом, вы сможете проанализировать весь новый синтаксис
поддерживается на Python 3, а также эффективно весь синтаксис Python 2 при
в то же время.
Сделав код исключительно Python 3. 5+, я смог сосредоточиться на
качество проверок и повторное использование всех приятных функций нового
релизы (проверьте pathlib) вместо того, чтобы тратить деньги на Unicode
совместимость и т.д.
Интеграция IDE и Linter
https://github.com/python/mypy#ide--linter-integrations
Интеграция IDE и Linter
Mypy можно интегрировать в популярные IDE:
- Vim: vim-mypy
- Emacs: использование Flycheck и Flycheck-mypy
- Sublime Text: SublimeLinter-contrib-mypy
- Atom: linter-mypy
- PyCharm: PyCharm объединяет собственную реализацию PEP 484.
Mypy также можно интегрировать в Flake8, используя flake8-mypy.
Ответ 2
Я добавил следующий код
{
"name": "mypy",
"type": "python",
"request": "launch",
"module": "mypy",
"args": [
"${file}"
],
"console": "integratedTerminal"
}
в VS Code launch.json и теперь это видно в окне "DEBUG". Просто нажмите F5, и вы получите полный статический анализ текущего файла.
Ответ 3
Существует плагин, который вы можете установить https://marketplace.visualstudio.com/items?itemName=ms-pyright.pyright