python / python/typeshed

The types of `builtins.locals` and `types.FrameType.f_locals` aren't correct

Ouverte
#14,584 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
5.1k
Forks
2.1k
Merge moyen
1 j 19 h
PR mergées (30 j)
82

Description

builtins.locals and types.FrameType.f_locals are currently typed with dict[str, Any], which is incorrect:

However, I'm not sure what the actual type should be. From what I can gather, the type should implement a mapping interface, with a few (but not all?) MutableMapping methods (PEP 667 describes what these mutable mapping methods are for FrameType.f_locals, but I'm not sure what's exactly expected of builtins.locals()).

In addition, collections.abc.Mapping and collections.abc.MutableMapping themselves are unsuitable, because they're nominal types, although this could be fixed by defining a Protocol which looks like a Mapping.

So, what should the types of builtins.locals and types.FrameType.f_locals be?

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 les déclarations référencées dans stdlib/builtins.pyi et stdlib/types.pyi, puis lisez la description de FrameType.f_locals dans PEP 667 et comparez-la aux exemples d’exécution du issue. Le travail sera considéré comme terminé lorsque des types compatibles auront été déterminés et documentés pour locals() et f_locals, notamment pour déterminer si un protocole de mappage structurel est nécessaire.

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

Évaluation

Stack technique
python
Domaine
tooling
Type d'issue
Bug
Difficulté
5/5
Temps estimé
Plus d'une semaine
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.