Repolode
nipunn1313

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. 1

    Instala protoc (versión 32.0 o posterior) desde la página de versiones de protobuf

  2. 2

    Instala el plugin con pip

    pip3 install mypy-protobuf
  3. 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