python / python/mypy

maximum semantic analysis iteration count reached with importing two dataclasses modules

Ouverte
#10,892 0 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

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

Description

Crash Report

Deferral trace:
    databind.core.dataclasses_test:35
    databind.core.dataclasses_test:35
    [...]
    databind.core.dataclasses_test:35
    databind.core.dataclasses_test:35
src/databind/core/dataclasses_test.py: error: INTERNAL ERROR: maximum semantic analysis iteration count reached
Found 1 error in 1 file (errors prevented further checking)

My project has a databind.core.dataclasses module which is supposed to be used as a drop-in replacement for dataclasses. In the unittests dataclasses_test, I import both of these modules but doing that crashes Mypy.

I haven't been able to come up with a smaller scenario to reproduce the issue.

Traceback

--show-traceback does not give any additional information other than what is shown above.

To Reproduce

  1. Clone https://github.com/NiklasRosenstein/databind.git and check out 74c5c6e
  2. Change directory into databind.core
  3. Install mypy pytest types-setuptools
  4. Run mypy src and not how there are no errors
  5. Open src/databind/core/dataclasses_test.py and insert import dataclasses at the top of the file
  6. Run mypy src again (you will see the error)

Your Environment

  • Mypy version used: 0.910
  • Mypy command-line flags: n/a
  • Mypy configuration options from mypy.ini (and other config files): n/a
  • Python version used: 3.9.6
  • Operating system and version: osx

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 l’échec du commit 74c5c6e dans databind en ajoutant import dataclasses à src/databind/core/dataclasses_test.py, puis exécutez mypy src avec mypy 0.910. Comparez l’exécution réussie avant l’import avec l’erreur maximum semantic analysis iteration qui survient ensuite ; c’est terminé lorsque l’importation des deux modules ne produit plus l’erreur interne.

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

Évaluation

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

Recevez les nouvelles issues par e-mail

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