Microsoft відкрила проект Pyright — систему для застосування статичної типізації в застосунках мовою Python.
Розробники можуть перевіряти типи за допомогою CLI-утиліти. Плагін підготовлено для IDE, що підтримують протокол LSP (Language Server Protocol), таких як Visual Studio Code, Nuclide й Atom. Код написаний на TypeScript.
Інформація про типи може визначатися в коді через додавання додаткових анотацій до змінних (PEP 526, наприклад # type: List [int]
), TypeVar-підказок в стилі mypy (PEP 484, наприклад def greeting (name: str) -> str:
) або застосування структурних підтипів (PEP 544).
Pyright підтримує вивід типів для значень функцій, змінних класів, локальних і глобальних змінних. У системі також є розумні обмежувачі типів, що враховують розгалуження в коді з використанням if/else.
Pyright працює приблизно в п'ять разів швидше за mypy та інші системи перевірки типів, написаних на Python. Висока продуктивність дозволяє використовувати Pyright для дуже великих кодових баз, роботи в режимі безперервного відстеження під час редагування і для швидкого інкрементального поновлення при зміні файлів. Для роботи Pyright не потрібна установка Python-оточення, але необхідний Node.js.
Окрім інструментів для аналізу і перевірки коду, проект містить підготовлений Typeshed набір stub-файлів («.pyi») з інформацією про типи для стандартних бібліотек stdlib. Плагін для IDE підтримує виведення підказок з відомостями про тип, перехід до позиції з визначенням змінної та забезпечення зворотного зв'язку під час редагування.
Ще немає коментарів