python / python/typing_extensions

Backport support for get_type_hints on lone stringified ClassVar

Ouverte
#643 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
583
Forks
146
Merge moyen
10 h 11 min
PR mergées (30 j)
5

Description

Currently, both typing.get_type_hints and typing_extensions.get_type_hints fail on a lone stringified ClassVar annotation in Python 3.9 and 3.10:

from __future__ import annotations

from typing import ClassVar, get_type_hints as get_type_hints
from typing_extensions import get_type_hints as get_type_hints_ext


class Foo:
    MY_CLASS_CONSTANT: ClassVar = 5


try:
    _ = get_type_hints(Foo)
except TypeError as exc:
    print(exc)

try:
    _ = get_type_hints_ext(Foo)
except TypeError as exc:
    print(exc)

This is unfortunate, as https://github.com/python/cpython/issues/90711 addressed this for Python 3.11+, so it would be nice if typing-extensions backported this fix for older python versions.

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 reproduire l’exemple fourni avec Python 3.9 et 3.10, puis examinez l’implémentation de typing_extensions.get_type_hints et ses tests existants. Le travail est terminé lorsque typing.get_type_hints et typing_extensions.get_type_hints traitent tous deux l’unique ClassVar représentée sous forme de chaîne comme ils le font dans Python 3.11+.

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é
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.