python / python/mypy

Why is the dict extension prohibited in the TypedDict constructor?

Offen
#16,785 1 Kommentar 11 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug topic-typed-dict
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
Ø Merge
1 T. 18 Std.
Gemergte PRs (30 T.)
54

Beschreibung

Bug Report

Cannot use dict expansion in TypedDict constructor. Why?

To Reproduce

from typing import TypedDict


class SomeTypedDict(TypedDict):
    field1: str
    field2: int
    field3: bool


SOME_SAMPLE = {
    'field1': 'str',
    'field2': 0,
    'field3': True,
}

some_variable = SomeTypedDict(**SOME_SAMPLE)
print(some_variable)

Actual Behavior

user@pc:~/$ mypy main.py 
main.py:16: error: Unsupported type "dict[str, object]" for ** expansion in TypedDict  [typeddict-item]
Found 1 error in 1 file (checked 1 source file)

Your Environment

user@pc:~/$ mypy --version 
mypy 1.8.0 (compiled: yes)
user@pc:~/$ python3 --version
Python 3.12.0

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 gemeldete Diagnose aus dem bereitgestellten main.py-Beispiel mit mypy 1.8.0 und untersuche, wie TypedDict-Konstruktoren die **-Expansion behandeln. Es wird keine Quelldatei oder kein Test genannt; als abgeschlossen gilt die Aufgabe erst mit einer klaren Erklärung der Einschränkung oder einer präzise abgegrenzten Korrektur mit Regressionstests.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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