`mypy --strict` fails with `Name "betterproto.ServiceStub" is not defined`
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
Comece em src/betterproto/init.py, onde ServiceStub é importado, e inspecione como os símbolos exportados são expostos ao mypy. Reproduza o problema gerando arquivos gRPC e executando mypy --strict no código gerado; considera-se concluído quando o código gerado não reportar mais Name "betterproto.ServiceStub" is not defined.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
mypy --strict fails with Name "betterproto.ServiceStub" is not defined
Reproduction Steps
- Generate some gRPC files from some proto files
- Run
mypyon the generated code
Expected Results
mypy passes.
Actual Results
error: Name "betterproto.ServiceStub" is not defined [name-defined]
Where the stub class is defined in the generated code.
I see the symbol is imported in https://github.com/danielgtaylor/python-betterproto/blob/master/src/betterproto/__init__.py, but it seems like mypy needs imported symbols to be explicitly exported, probably via __all__ or using from x import y as y (see https://peps.python.org/pep-0484/#stub-files).
System Information
$ protoc --version; python --version; pip show betterproto; pip show grpcio-tools
bash: protoc: command not found
Python 3.11.9
Name: betterproto
Version: 2.0.0b6
Location: /home/luca/devel/frequenz-microgrid-betterproto/.direnv/python-3.11.9/lib/python3.11/site-packages
Requires: grpclib, python-dateutil
Required-by: frequenz-microgrid-betterproto
Name: grpcio-tools
Version: 1.63.0
Location: /home/luca/devel/setuptools-betterproto/.direnv/python-3.11/lib/python3.11/site-packages
Requires: grpcio, protobuf, setuptools
(I'm using grpcio-tools to generate the files, not protoc)
Checklist
- I have searched the issues for duplicates.
- I have shown the entire traceback, if possible.
- I have verified this issue occurs on the latest prelease of betterproto which can be installed using
pip install -U --pre betterproto, if possible.
- Linguagem predominante
- Python
- Estrelas
- 1.8k
- Forks
- 235
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de danielgtaylor/python-betterproto
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
-
bug investigation needed
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 42/100
-
bug investigation needed
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
-
bug investigation needed
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
danielgtaylor/python-betterproto#676 · 3 comentários ·
Todas as issues de danielgtaylor/python-betterproto
Issues semelhantes
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
fossasia/visdom-dev#77 ·
Mantenedores costumam responder em até 4 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
aws-cloudformation/cfn-lint#4890 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
volcengine/OpenViking#6521 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
AstrBotDevs/AstrBot#10720 ·
Mantenedores costumam responder em até 1 dia