Разница между пакетами mypy и mypy-lang против pyls-mypy python - PullRequest
0 голосов
/ 27 января 2020

Я изучаю проверку типа stati c для Python и наткнулся на различные пакеты при настройке кода Visual Studio. Я установил python-language-server для linting и форматирования. Я сталкивался с mypy.exe и mypyls.exe исполняемыми файлами.

Я мог бы сделать,

pip install mypy

pip install mypy-lang

pip install pyls-mypy

Все три вышеперечисленных произведения. Но,

  1. Хотелось бы узнать разницу между пакетами mypy, mypy-lang и pyls-mypy?
  2. Какие из них используются для включения проверки типов ( или все 3 необходимы)?
  3. Эти пакеты каким-либо образом связаны с python-language-server? Если да, то как?

1 Ответ

2 голосов
/ 01 февраля 2020

Хотелось бы узнать разницу между пакетами mypy, mypy-lang и pyls-mypy?

Пакет mypy содержит средство проверки типов mypy, которое выполняет все анализа фактического кода, вывода типа и проверки типа.

Пакет mypy-lang является устаревшим. Если вы устанавливаете или пробуете его использовать, я думаю, все, что он сделает, это скажет, что вы должны вместо этого установить пакет mypy (хотя я не уверен, насколько заметна эта заметка на самом деле).

По сути, Оказалось, что когда mypy был впервые создан, кто-то уже захватил имя «mypy» на pypi для несвязанного проекта, поэтому разработчики mypy вместо этого согласились на «mypy-lang».

Но через несколько лет / несколько неудачных попыток связаться с владельцем пакета «mypy», стало ясно, что пакет был заброшен, поэтому право собственности было передано разработчикам mypy.

Пакет pyls-mypy является независимым проектом, который в основном реализует Python языковой сервер, который понимает подсказки типов.

« языковой серверный протокол » - это протокол, который постоянно растет в популярности и пытается упростить добавление лучших инструментов для языков программирования. в IDE.

Идея состоит в том, что если у вас есть язык программирования или какой-либо линтер, вы не хотите писать е N разных плагинов для N разных редакторов. Вместо этого вы реализуете этот протокол только один раз, и любые IDE и редакторы, которые поддерживают LSP, будут автоматически понимать ваш инструмент.

Причина, по которой установка pyls-mypy "просто работает", вероятно, заключается в том, что она объявляет mypy как зависимость .

Что из этого используется для включения проверки типов (или все 3 необходимы)?

Только пакет mypy необходим для проверки типов.

Однако сам mypy может быть вызван только из командной строки. Если вы хотите интегрировать его с другим редактором или IDE, вам нужно установить некоторые дополнительные инструменты.

Например, если вы хотите использовать mypy непосредственно из PyCharm, вам нужно будет установить плагин mypy / Pycharm .

В качестве другого примера, если вы хотите использовать mypy из какого-либо редактора, поддерживающего LSP, вам необходимо установить что-то вроде pyls-mypy.

Связаны ли эти пакеты каким-либо образом с python -language-сервером? Если да, то как?

pyls-mypy, по-видимому, является плагином для / build поверх проекта Palantir python -language-server. См. Файл readme проекта и файл им. Require.txt.

...