Pygithub: Adicionar anotações de tipo para mypy (etc.)

Criado em 8 set. 2019  ·  6Comentários  ·  Fonte: PyGithub/PyGithub

Seria ótimo se PyGithub tivesse anotações de tipo para seus tipos. Isso permitiria aos usuários construir um código mais seguro em torno dele, bem como melhorar as sugestões do editor. Como PyGithub já tem uma hierarquia de tipos bem definida, já existem tipos que poderiam ser usados, o que é ótimo.

(Na verdade, originalmente assumi a partir da descrição que PyGithub foi anotado e fiquei surpreso que não foi).

Isso é algo que você considerou e / ou estaria aberto?

feature request improvement

Comentários muito úteis

É possível usar ferramentas como https://github.com/Instagram/MonkeyType para aplicar anotações de tipo embutidas de um arquivo stub. Então, potencialmente, poderíamos começar a trabalhar na escrita de stubs e aplicá-los em linha após descartar o suporte para Py2.

Todos 6 comentários

Se os mantenedores concordarem com essa ideia, eu não me importaria de trabalhar nela.

Eu estou bem com isso, mas não vai ser um pequeno esforço. Talvez antes disso devamos atualizar o projeto para Python 3 (já que Python2 será removido em breve), para que possamos usar as anotações de tipo de estilo Python3 em qualquer lugar.

É possível usar ferramentas como https://github.com/Instagram/MonkeyType para aplicar anotações de tipo embutidas de um arquivo stub. Então, potencialmente, poderíamos começar a trabalhar na escrita de stubs e aplicá-los em linha após descartar o suporte para Py2.

Ok, na verdade comecei a trabalhar na ideia de @trickeydan . Eu gerei arquivos stubs executando MonkeyType no unittest e os gravei em arquivos .piy próximos aos arquivos .py. Será necessário verificar todos os stubs manualmente porque o MonkeyType parece ter perdido alguns detalhes aqui e ali, infelizmente (pode demorar um pouco).

Acho que também será necessário exportar mais ou menos todos os tipos que temos no __init__.py do módulo para que as pessoas incluam o tipo do PyGithub em seus tipos de verificação.

Se alguém estiver interessado, você pode verificar o progresso aqui: https://github.com/zer0tonin/PyGithub/tree/agg/type_stubs

O único problema que observei até agora é que o urllib3 não parece ter nenhuma informação de digitação disponível e, infelizmente, usamos alguns de seus tipos.

@ zer0tonin Vamos manter a bola rolando. Por que não abrir um PR da sua filial, para que possamos fazer uma revisão.

urllib3 é usado apenas para a função Repetir, que foi recentemente introduzida em # 1002. Vamos ver como podemos adicionar stub a urllib3 mais tarde.

Fechado em # 1231
A aplicação de CI será adicionada em # 1442

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

rpocase picture rpocase  ·  5Comentários

kodeshpa picture kodeshpa  ·  3Comentários

AdyaAbhra picture AdyaAbhra  ·  5Comentários

diegotejadav picture diegotejadav  ·  5Comentários

nchammas picture nchammas  ·  3Comentários