一个轻量的 Go 微服务框架,提供统一的 HTTP/gRPC 传输层、中间件和基于 Protobuf 的代码生成。
nipunn1313/mypy-protobuf
一个 protoc 插件,从 Protocol Buffers 定义生成 Python 的 .pyi 类型存根文件。
- Star
- 711
- Fork
- 81
- 未关闭 Issue
- 31
- 最近提交
- 5天前
这是什么?
mypy-protobuf 是一个 protoc 插件,可以从 .proto 文件生成与 mypy 兼容的 .pyi 存根文件。生成的类型信息能让 mypy、pyright 等类型检查器在静态检查阶段发现问题,而不必等到运行时。
与 protoc 自带的 --pyi_out 相比,它生成的存根会根据字段是否存在(presence)给构造函数标注更准确的类型,并为 HasField、WhichOneof、ClearField 提供带类型的签名和参数别名。.proto 中的注释会转为 docstring,枚举值会用 NewType 包装,误用枚举值时可以被检出。被标记为废弃的元素也能生成 @warnings.deprecated 标注。
该插件还支持为 gRPC 服务和客户端生成同步与异步存根,并可通过 casttype、keytype、valuetype 等选项为标量和 map 字段指定自定义类型。它要求 protoc 32 及以上版本和 python-protobuf 6.32 及以上版本。
核心功能
- 01生成能体现字段是否存在的构造函数类型标注。
- 02为 HasField、WhichOneof、ClearField 提供带类型的方法签名。
- 03将 .proto 注释转换为 .pyi 中的 docstring,IDE 补全时可见。
- 04用 NewType 包装枚举值,类型检查器可以发现误用的枚举值。
- 05为 gRPC 服务和客户端生成同步与异步存根。
- 06支持为标量和 map 字段指定自定义类型包装。
适用场景
- 在使用 protobuf 消息的 Python 项目中启用 mypy 或 pyright 类型检查。
- 为 Python 服务生成带类型的 gRPC 客户端和服务端存根。
- 改善生成的 protobuf 类在 IDE 中的自动补全和文档提示。
快速上手
- 1
从 protobuf 发布页面安装 protoc(32.0 或更新版本)
- 2
使用 pip 安装插件
pip3 install mypy-protobuf - 3
使用 protoc 生成与 Python 代码并列的 mypy 存根文件
protoc --python_out=output/location --mypy_out=output/location
使用前须知
- 需要较新的版本:protoc 32.0 或更新版本,以及 python-protobuf 6.32 或更新版本;更早的版本未经测试。
收录于专题
标签
常见问题
- mypy-protobuf 是什么?
- 一个 protoc 插件,从 Protocol Buffers 定义生成 Python 的 .pyi 类型存根文件。 mypy-protobuf 是一个 protoc 插件,可以从 .proto 文件生成与 mypy 兼容的 .pyi 存根文件。生成的类型信息能让 mypy、pyright 等类型检查器在静态检查阶段发现问题,而不必等到运行时。
- mypy-protobuf 可以免费使用吗?用的什么许可证?
- mypy-protobuf 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- mypy-protobuf 还在维护吗?
- 活跃维护中。mypy-protobuf 最近一次提交是在 2026年11月2日。
- mypy-protobuf 适合用来做什么?
- 在使用 protobuf 消息的 Python 项目中启用 mypy 或 pyright 类型检查。 为 Python 服务生成带类型的 gRPC 客户端和服务端存根。 改善生成的 protobuf 类在 IDE 中的自动补全和文档提示。
- mypy-protobuf 怎么安装和运行?
- 从 protobuf 发布页面安装 protoc(32.0 或更新版本) 使用 pip 安装插件: pip3 install mypy-protobuf 使用 protoc 生成与 Python 代码并列的 mypy 存根文件: protoc --python_out=output/location --mypy_out=output/location
- 在哪里获取 mypy-protobuf?
- 源代码和安装说明在 GitHub 上:https://github.com/nipunn1313/mypy-protobuf
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 gRPC 服务的命令行工具,类似 curl,使用 JSON 调用 RPC 方法。
一个命令行工具,可启动网页界面,交互式地向 gRPC 服务发送请求,类似面向 REST 的 Postman。
用于对 gRPC 服务进行基准测试和压力测试的命令行工具,支持并发、限速和多种输出格式。
Google 推出的跨语言、跨平台结构化数据序列化格式,附带 protoc 编译器和多语言运行时。