Лёгкий Go-фреймворк для облачных микросервисов с единым транспортом HTTP и gRPC, middleware и генерацией кода на основе Protobuf.
nipunn1313/mypy-protobuf
Плагин для protoc, генерирующий Python-файлы .pyi с типами по определениям Protocol Buffer, включая типизированные HasField, ClearField и gRPC-заглушки.
- Звёзды
- 711
- Форки
- 81
- Открытые issues
- 31
- Последний коммит
- 5 дней назад
Что это?
mypy-protobuf — плагин для protoc, который генерирует совместимые с mypy файлы .pyi по определениям .proto. Он добавляет статическую типизацию в Python-код для protobuf, чтобы средства проверки типов, например mypy и pyright, могли находить ошибки во время проверки типов, а не при выполнении программы.
В отличие от заглушек, которые создаёт встроенный в protoc параметр --pyi_out, сгенерированные файлы учитывают наличие полей в типах конструктора, добавляют типизированные методы HasField, WhichOneof и ClearField, а также псевдонимы типов для их аргументов. Комментарии из файлов .proto попадают в заглушки в виде docstring, а значения enum оборачиваются в NewType, чтобы средства проверки типов обнаруживали несовпадения. Устаревшие элементы можно помечать с помощью @warnings.deprecated.
Плагин также генерирует заглушки для gRPC-сервисов и клиентов — для синхронного и асинхронного вариантов — и поддерживает параметры casttype и keytype/valuetype для обёртывания скалярных типов и типов полей map. Для его работы требуются protoc версии 32 или новее и python-protobuf версии 6.32 или новее; начиная с версии 2.10 поддержка Python 2 удалена.
Ключевые возможности
- 01Генерирует заглушки .pyi с типами конструктора, учитывающими наличие полей.
- 02Добавляет типизированные методы HasField, WhichOneof и ClearField.
- 03Переносит комментарии из .proto в заглушки в виде docstring.
- 04Оборачивает значения enum в NewType, чтобы средства проверки типов обнаруживали несовпадения.
- 05Генерирует синхронные и асинхронные заглушки для gRPC-сервисов и клиентов.
- 06Поддерживает пользовательские обёртки типов для скалярных полей и полей map.
Сценарии использования
- Добавление статической проверки типов с помощью mypy или pyright в Python-проект, использующий protobuf-сообщения.
- Генерация типизированных заглушек gRPC-клиентов и обработчиков сервисов для Python.
- Улучшение автодополнения в IDE и отображения docstring у сгенерированных классов protobuf.
Быстрый старт
- 1
Установите protoc (версии 32.0 или новее) со страницы релизов protobuf
- 2
Установите плагин с помощью pip
pip3 install mypy-protobuf - 3
С помощью protoc сгенерируйте mypy-стабы вместе с кодом на Python
protoc --python_out=output/location --mypy_out=output/location
Что важно знать
- Требуются актуальные версии: protoc 32.0 или новее и python-protobuf 6.32 или новее. Более ранние версии не тестировались.
В подборках
Темы
Частые вопросы
- Что такое mypy-protobuf?
- Плагин для protoc, генерирующий Python-файлы .pyi с типами по определениям Protocol Buffer, включая типизированные HasField, ClearField и gRPC-заглушки. mypy-protobuf — плагин для protoc, который генерирует совместимые с mypy файлы .pyi по определениям .proto. Он добавляет статическую типизацию в Python-код для protobuf, чтобы средства проверки типов, например mypy и pyright, могли находить ошибки во время проверки типов, а не при выполнении программы.
- mypy-protobuf можно использовать бесплатно? Какая у него лицензия?
- mypy-protobuf распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- mypy-protobuf всё ещё поддерживается?
- Активно поддерживается. Последний коммит в mypy-protobuf — 2 нояб. 2026 г..
- Для чего можно использовать mypy-protobuf?
- Добавление статической проверки типов с помощью mypy или pyright в Python-проект, использующий protobuf-сообщения. Генерация типизированных заглушек gRPC-клиентов и обработчиков сервисов для Python. Улучшение автодополнения в IDE и отображения docstring у сгенерированных классов protobuf.
- Как установить mypy-protobuf?
- Установите protoc (версии 32.0 или новее) со страницы релизов protobuf Установите плагин с помощью pip: pip3 install mypy-protobuf С помощью protoc сгенерируйте mypy-стабы вместе с кодом на Python: protoc --python_out=output/location --mypy_out=output/location
- Где скачать mypy-protobuf?
- Исходный код и инструкции по установке — на GitHub: https://github.com/nipunn1313/mypy-protobuf
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Плагин protoc, который генерирует сервер обратного прокси, преобразующий RESTful HTTP-запросы с JSON в gRPC-запросы для сервисов на Go.
CLI-инструмент для вызова gRPC-серверов: принимает JSON, как curl, и находит схемы через server reflection или proto-файлы.
CLI-инструмент, который запускает браузерный интерфейс для интерактивной отправки запросов на gRPC-серверы — аналог Postman для REST.
CLI-инструмент для бенчмаркинга и нагрузочного тестирования gRPC-сервисов с настройкой параллелизма, ограничений частоты запросов и форматов вывода.
Независимый от языка и платформы формат и набор инструментов Google для сериализации структурированных данных: компилятор protoc и среды выполнения для множества языков.