python / python/mypy

Incorrect diagnostic on missing submodule

Ouverte
#17,846 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

Bug Report

When untyped module exists but submodule does not, mypy reports that submodule is installed.

To Reproduce

$ pip install fabric
import fabric
from fabric.not_exists import something
$ python3 test.py
Traceback (most recent call last):
  File "/media/sf_d/WWPass/git/spm/test.py", line 2, in <module>
    from fabric.not_exists import something
ModuleNotFoundError: No module named 'fabric.not_exists'

$ mypy test.py
test.py:1:1: error: Skipping analyzing "fabric": module is installed, but missing library stubs or py.typed marker  [import-untyped]
    import fabric
    ^
test.py:2:1: error: Skipping analyzing "fabric.not_exists": module is installed, but missing library stubs or py.typed marker  [import-untyped]
    from fabric.not_exists import something
    ^
test.py:2:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 2 errors in 1 file (checked 1 source file)

Expected Behavior
Error in line 2 should be saying that fabric.not_exists does not exist.

Actual Behavior
Error in line 2 says that fabric.not_exists is installed, which it not true and misleading.

Your Environment

$ mypy --version
mypy 1.11.2 (compiled: yes)

$ python3 --version
Python 3.12.3

$ pip list | grep fabric
fabric 3.2.2

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez le rapport avec le test.py présenté, un paquet fabric installé et non typé, ainsi que l’importation de fabric.not_exists. Commencez par suivre la résolution des imports de mypy et le diagnostic de stub manquant pour les modules imbriqués ; c’est terminé lorsque le paquet existant signale toujours son avertissement actuel, tandis que le sous-module manquant reçoit une erreur claire indiquant qu’il n’existe pas.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
devtools
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.