Olá, tudo bem?
O erro module is installed, but missing library stubs or py.typed marker é apresentado quando o mypy encontra importações de módulos de terceiros mas não encontra a biblioteca stubs que é responsável por determinar as dicas de tipos de bibliotecas e funções de terceiros ou bibliotecas criadas pelo usuário.
O arquivo de configuração do flake8 (.pre.commit-config.yaml) não está ligado diretamente ao projeto, não é importado no projeto por exemplo, assim durante a verificação dos arquivos com o uso do mypy esse arquivo de configuração será ignorado.
Para remoção do erro, temos as seguintes recomendações segundo a documentação do mypy:
Alternativa um
Alternativa dois
Verifique a se está fazendo o uso da versão atualizada do mypy, para isso execute o código abaixo no terminal, caso esteja utilizando uma versão desatualizada a nova versão será instalada.
Python -m pip install --upgrade mypy
Após executar o código acima, execute a verificação do arquivo, executando no terminal o código mypy <nome_do_arquivo.py>
.
Alternativa três
Podemos criar nosso próprio stubs com uma ferramenta presente no mypy, para isso fazermos o uso do stubgen. Conforme o erro apresentado, não foi encontrado o stubs do arquivo fila_prioritaria.
Com o terminal aberto na pasta do projeto, execute o código abaixo, será criado uma pasta de nome out contendo o arquivo < nome_do_arquivo>.pyi. No código abaixo substitua o < nome_do_arquivo> pelo nome do arquivo que será criado o stubs.
stubgen <nome_do_arquivo>.py
A pasta gerada deverá permanecer no mesmo diretório do projeto.
Após executar o código acima, execute a verificação do arquivo, executando no terminal o código mypy <nome_do_arquivo.py>
.
Alternativa quatro
Segundo a documentação do mypy podemos informar que determinada importação deverá ser ignorada no momento da verificação, o que eliminará o erro. Para isso será necessário adicionarmos um comentário na linha em que é realizado a importação. Como apresentado abaixo.
from fila_prioritaria import FilaPrioridade # type: ignore
Adicione o comentário # type: ignore e logo após, execute a verificação do arquivo, executando no terminal o código mypy <nome_do_arquivo.py>
.
Peço que teste as alternativas acima, caso o erro mude peço que informe qual o erro gerado, para que você possa ser auxiliado da melhor forma.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!