python / python/mypy

Proper way to use dynamic keys for TypedDict

Offen
#9,168 9 Kommentare 6 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

false-positive feature priority-2-low topic-literal-types topic-typed-dict
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Is there a way to use dynamic keys for a TypedDict which is properly typed? I have code like this:

if name in ['visible', 'value', 'locked']:
	obj[name] = self.use_var_expr(scope, value)

Where obj is a TypedDict that has the same type for the keys 'visible', 'value', 'locked'.

I know that name is not a literal string, but it's been verified to belong to a set of literal strings that belong to the TypedDict.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere die im Issue gezeigte TypedDict-Zuweisung und konzentriere dich auf die Mitgliedschaftsprüfung gegen ['visible', 'value', 'locked']. Ermittle, ob mypy dieses Muster typprüfen kann; abgeschlossen ist die Aufgabe, wenn entweder das Muster mit korrekten Typen akzeptiert wird oder die Einschränkung und die unterstützte Alternative dokumentiert sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.