python / python/mypy

mypy crashes with "Cannot find component" on subsequent runs

Ouverte
#18,751 8 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

crash topic-daemon
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

Crash Report

Running mypy after the first run sometimes crashes.

rm -rf .mypy_cache fixes the issue, but if I then run mypy a few more times, it crashes again.

Traceback

$ mypy
Traceback (most recent call last):
File "/path/to/mypy/mypy", line 8, in <module> sys.exit(console_entry())
File "/path/to/mypy/_-main_-.py",line 15, in console_entry main(
File "mypy/main.py", line 119, in main
File "mypy/main.py"
File "mypy/build.py"
, line 203, in run_build , line 191, in build
File "mypy/build.py", line 267, in _build File "mypy/build.py", line 2937, in dispatch
File "mypy/build.py" , line 3328, in process-graph
File "mypy/build.py",
File '
"mypy/build.py"
line 3409, in process_fresh-modules , line 2107, in fix_cross_refs
File "mypy/fixup.py" , line 52, in fixup-module
File
"mypy/fixup.py" , line 128, in visit_symbol_table
File "mypy/lookup.py", line 49, in lookup_fully_qualified
AssertionError: Cannot find component 'operators' for 'sqlalchemy.sql.operators'

To Reproduce

This is at work, and it's a rather large repo, so I can't provide easy repro steps. I would be happy to provide additional information that you need.

Your Environment

  • Mypy version used: v1.15.0
  • Mypy command-line flags:
  • Mypy configuration options from mypy.ini (and other config files):
[mypy]
mypy_path = server/python_stubs,server

files = server/,test/

explicit_package_bases = True
enable_incomplete_feature=InlineTypedDict

strict = True
warn_return_any = False
disallow_untyped_calls = False
no_implicit_reexport = False
warn_unreachable = True
plugins = pydantic.mypy

Additionally, we added ignore_missing_imports to most of our libraries.

  • Python version used:
  • python 3.11.11
  • Operating system and version:
  • macOS ventura

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

Commencez par suivre le chemin du traceback dans mypy/build.py, mypy/fixup.py et mypy/lookup.py, en vous concentrant sur le traitement des modules nouveaux après la réutilisation de .mypy_cache. Reproduisez l’échec lors d’exécutions successives si possible, puis vérifiez que des exécutions répétées de mypy ne lèvent plus l’AssertionError signalée.

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

Évaluation

Stack technique
python, sqlalchemy
Domaine
tooling
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

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