Хотелось бы узнать разницу между пакетами 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.