Repolode
nipunn1313

nipunn1313/mypy-protobuf

Plugin do protoc que gera arquivos stub de tipos Python .pyi a partir de definições de Protocol Buffers, com stubs tipados para HasField, ClearField e gRPC.

Estrelas
711
Forks
81
Issues abertas
31
Último commit
há 4 dias

O que é?

mypy-protobuf é um plugin do protoc que gera arquivos stub .pyi compatíveis com mypy a partir de definições .proto. Ele adiciona informações de tipos estáticos ao código Python de protobuf para que verificadores de tipos, como mypy e pyright, detectem erros durante a verificação, em vez de em tempo de execução.

Em comparação com os stubs gerados pela opção integrada --pyi_out do protoc, os arquivos gerados adicionam tipos de construtor que levam em conta a presença dos campos, métodos tipados HasField, WhichOneof e ClearField, além de aliases de tipo para seus argumentos. Comentários nos arquivos .proto são incluídos nos stubs como docstrings, e valores de enum são envolvidos em NewType para que valores incompatíveis sejam sinalizados. Elementos obsoletos podem ser marcados com @warnings.deprecated.

O plugin também gera stubs para serviços e clientes gRPC, nas variantes síncrona e assíncrona, e oferece suporte às opções casttype e keytype/valuetype para envolver tipos de campos escalares e de mapa. Ele requer protoc 32 ou posterior e python-protobuf 6.32 ou posterior, e deixou de oferecer suporte a Python 2 após a versão 2.10.

Recursos principais

  • 01Gera stubs .pyi com tipos de construtor que levam em conta a presença dos campos.
  • 02Oferece métodos tipados HasField, WhichOneof e ClearField.
  • 03Inclui nos stubs, como docstrings, os comentários dos arquivos .proto.
  • 04Envolve valores de enum em NewType para que verificadores de tipos detectem valores incompatíveis.
  • 05Gera stubs síncronos e assíncronos para serviços e clientes gRPC.
  • 06Oferece suporte a wrappers de tipos personalizados para campos escalares e de mapa.

Casos de uso

  • Adicionar verificação estática de tipos com mypy ou pyright a um projeto Python que usa mensagens protobuf.
  • Gerar stubs tipados de clientes gRPC e servicers para serviços Python.
  • Melhorar o preenchimento automático da IDE e as docstrings de classes protobuf geradas.

Início rápido

  1. 1

    Instale protoc (versão 32.0 ou superior) na página de lançamentos do protobuf

  2. 2

    Instale o plugin com pip

    pip3 install mypy-protobuf
  3. 3

    Gere stubs do mypy junto com seu código Python usando protoc

    protoc --python_out=output/location --mypy_out=output/location

Antes de usar

  • São necessárias versões recentes: protoc 32.0 ou superior e python-protobuf 6.32 ou superior. Versões anteriores não foram testadas.

Em coleções

Tópicos

Perguntas frequentes

O que é mypy-protobuf?
Plugin do protoc que gera arquivos stub de tipos Python .pyi a partir de definições de Protocol Buffers, com stubs tipados para HasField, ClearField e gRPC. mypy-protobuf é um plugin do protoc que gera arquivos stub .pyi compatíveis com mypy a partir de definições .proto. Ele adiciona informações de tipos estáticos ao código Python de protobuf para que verificadores de tipos, como mypy e pyright, detectem erros durante a verificação, em vez de em tempo de execução.
mypy-protobuf é gratuito? Qual é a licença?
mypy-protobuf é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
mypy-protobuf ainda é mantido?
Manutenção ativa. O último commit de mypy-protobuf foi em 2 de nov. de 2026.
Para que posso usar mypy-protobuf?
Adicionar verificação estática de tipos com mypy ou pyright a um projeto Python que usa mensagens protobuf. Gerar stubs tipados de clientes gRPC e servicers para serviços Python. Melhorar o preenchimento automático da IDE e as docstrings de classes protobuf geradas.
Como instalar mypy-protobuf?
Instale protoc (versão 32.0 ou superior) na página de lançamentos do protobuf Instale o plugin com pip: pip3 install mypy-protobuf Gere stubs do mypy junto com seu código Python usando protoc: protoc --python_out=output/location --mypy_out=output/location
Onde consigo mypy-protobuf?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/nipunn1313/mypy-protobuf

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados