Difference between `builtins.type` and `Type[Any]`

Ouverte
#12,933 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

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

Piste de recherche

Commencez par reproduire la divergence dans le mypy playground indiqué, en comparant builtins.type à Type[Any] avec les versions de Python et de mypy spécifiées. Suivez la manière dont chaque type est interprété pour le protocole SupportsStr et tenez compte de l’équivalence documentée ; le travail est terminé lorsque le comportement est conforme à cette attente et couvert par un test de régression.

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

Description

bug topic-pep-585

Bug Report

I have a protocol:

class SupportsStr(Protocol):
    def __str__(self) -> str:
        ...

Surprisingly, builtins.type is compliant with this, while Type[Any] isn't.

To Reproduce

Link to mypy playground: https://mypy-play.net/?mypy=latest&python=3.11&gist=355a1b96812a523f6e374eb8ca6f4635

Expected Behavior

I would think both should be compliant, given that the typing.Type docs states that:

Type[Any] is equivalent to Type which in turn is equivalent to type, which is the root of Python’s metaclass hierarchy.

Actual Behavior

Surprisingly, builtins.type is compliant with this, while Type[Any] isn't.

Your Environment

See link to mypy playground.

Mypy 0.960 and python 3.11

Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Merge moyen
1 j 18 h
PR mergées (30 j)
54

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.

Autres issues de python/mypy

Toutes les issues de python/mypy

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

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