Un framework ligero de Go para crear microservicios nativos de la nube con transportes HTTP y gRPC unificados, middleware y generación de código basada en Protobuf.
nipunn1313/mypy-protobuf
Plugin de protoc que genera archivos stub de tipos Python .pyi a partir de definiciones de Protocol Buffer, con HasField, ClearField y stubs de gRPC tipados.
- Estrellas
- 711
- Forks
- 81
- Issues abiertos
- 31
- Último commit
- hace 5 días
¿Qué es?
mypy-protobuf es un plugin de protoc que genera archivos stub .pyi compatibles con mypy a partir de definiciones .proto. Añade información de tipos estáticos al código de protobuf para Python, de modo que verificadores de tipos como mypy y pyright puedan detectar errores durante la verificación, en lugar de hacerlo en tiempo de ejecución.
En comparación con los stubs que genera la opción integrada --pyi_out de protoc, los archivos generados incorporan tipos de constructor que tienen en cuenta la presencia de campos, métodos tipados HasField, WhichOneof y ClearField, y alias de tipos para sus argumentos. Los comentarios de los archivos .proto se conservan en los stubs como docstrings, y los valores de enum se envuelven en NewType para que se detecten los valores de enum incompatibles. Los elementos obsoletos se pueden marcar con @warnings.deprecated.
El plugin también genera stubs para servicios y clientes gRPC, tanto síncronos como asíncronos, y admite las opciones casttype y keytype/valuetype para envolver tipos de campos escalares y de mapas. Requiere protoc 32 o posterior y python-protobuf 6.32 o posterior, y dejó de admitir Python 2 a partir de la versión 2.10.
Funciones clave
- 01Genera stubs .pyi con tipos de constructor que tienen en cuenta la presencia de campos.
- 02Ofrece métodos tipados HasField, WhichOneof y ClearField.
- 03Conserva los comentarios de .proto en los stubs como docstrings.
- 04Envuelve los valores de enum en NewType para que los verificadores de tipos detecten valores incompatibles.
- 05Genera stubs de servicios y clientes gRPC síncronos y asíncronos.
- 06Admite wrappers de tipos personalizados para campos escalares y de mapas.
Casos de uso
- Añadir verificación estática de tipos con mypy o pyright a un proyecto Python que usa mensajes protobuf.
- Generar stubs tipados de clientes y servicers gRPC para servicios Python.
- Mejorar el autocompletado del IDE y los docstrings de las clases protobuf generadas.
Inicio rápido
- 1
Instala protoc (versión 32.0 o posterior) desde la página de versiones de protobuf
- 2
Instala el plugin con pip
pip3 install mypy-protobuf - 3
Genera stubs de mypy junto con tu código Python usando protoc
protoc --python_out=output/location --mypy_out=output/location
Antes de usarlo
- Se requieren versiones recientes: protoc 32.0 o posterior y python-protobuf 6.32 o posterior. Las versiones anteriores no se han probado.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es mypy-protobuf?
- Plugin de protoc que genera archivos stub de tipos Python .pyi a partir de definiciones de Protocol Buffer, con HasField, ClearField y stubs de gRPC tipados. mypy-protobuf es un plugin de protoc que genera archivos stub .pyi compatibles con mypy a partir de definiciones .proto. Añade información de tipos estáticos al código de protobuf para Python, de modo que verificadores de tipos como mypy y pyright puedan detectar errores durante la verificación, en lugar de hacerlo en tiempo de ejecución.
- ¿mypy-protobuf es gratuito? ¿Qué licencia tiene?
- mypy-protobuf es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿mypy-protobuf sigue mantenido?
- Mantenimiento activo. El último commit de mypy-protobuf fue el 2 nov 2026.
- ¿Para qué puedo usar mypy-protobuf?
- Añadir verificación estática de tipos con mypy o pyright a un proyecto Python que usa mensajes protobuf. Generar stubs tipados de clientes y servicers gRPC para servicios Python. Mejorar el autocompletado del IDE y los docstrings de las clases protobuf generadas.
- ¿Cómo se instala mypy-protobuf?
- Instala protoc (versión 32.0 o posterior) desde la página de versiones de protobuf Instala el plugin con pip: pip3 install mypy-protobuf Genera stubs de mypy junto con tu código Python usando protoc: protoc --python_out=output/location --mypy_out=output/location
- ¿Dónde consigo mypy-protobuf?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/nipunn1313/mypy-protobuf
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Plugin de protoc que genera un servidor proxy inverso para traducir llamadas HTTP RESTful con JSON en solicitudes gRPC para servicios Go.
Herramienta de línea de comandos para llamar a servidores gRPC, como curl pero con entradas JSON sobre gRPC y detección de esquemas mediante reflexión del servidor o archivos proto.
Herramienta de línea de comandos que inicia una interfaz web para enviar solicitudes interactivamente a servidores gRPC, similar a Postman para REST.
Herramienta de línea de comandos para comparar el rendimiento y probar la carga de servicios gRPC, con concurrencia, límites de tasa y formatos de salida configurables.
Formato y toolchain de Google, independientes del lenguaje y la plataforma, para serializar datos estructurados, con el compilador protoc y runtimes para muchos lenguajes.