TypedDict doesn't support Union[Literal] as key "string literal"
Ouverte
Personne n'a encore pris cette issue.
bug
priority-2-low
topic-literal-types
topic-typed-dict
topic-union-types
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Possibly bug.
Related: https://github.com/python/mypy/issues/7644
Reproducible example
from typing_extensions import Literal, TypedDict
class TDict(TypedDict):
KEY1: int
KEY2: int
d1: TDict = {'KEY1': 1, 'KEY2': 2}
key2: Literal['KEY1']
d2: TDict = {key2: 1, 'KEY2': 2}
key3: Literal['KEY1', 'KEY2']
d3: TDict = {key3: 1, 'KEY2': 2} # error: Expected TypedDict key to be string literal
I use mypy 0.740 and python3.6
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter les exemples fournis de TypedDict et Literal avec mypy 0.740, en vous concentrant sur l’affectation d3 qui signale « Expected TypedDict key to be string literal. ». C’est terminé lorsque le cas reproductible d’une clé constituée d’une union de littéraux est accepté de manière cohérente comme le cas d’un littéral unique.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100