[1.16 regression] Incompatible types error when using `Enum`s of a `NamedTuple`
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 38/100
Rechercherichtung
Beginne mit der verlinkten mypy-play-Reproduktion und dem eingebetteten Foo/FooEnum-Snippet und vergleiche mypy 1.15 mit 1.16 unter Python 3.13. Verfolge den Type-Checking-Pfad für Enum-Mitglieder, die von NamedTuple erben. Als abgeschlossen gilt die Aufgabe, wenn die Zuweisung wieder akzeptiert wird und die Regressionstests bestätigen, dass einfache Klassen und Dataclasses weiterhin unbeeinträchtigt sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Bug Report
Seeing this regression on mypy 1.16 with Enums of NamedTuples values.
Note: Enums of plain classes or dataclasses work as expected.
To Reproduce
https://mypy-play.net/?mypy=1.16.0&python=3.13&flags=strict&gist=2c5d8ca22757aee67d917d8fec20ad7f
from enum import Enum
from typing import NamedTuple
class Foo(NamedTuple):
pass
class FooEnum(Foo, Enum):
ITEM = Foo()
foo: Foo = FooEnum.ITEM # works on 1.15 but not 1.16
Actual Behavior
error: Incompatible types in assignment (expression has type "FooEnum", variable has type "Foo") [assignment]
Your Environment
- Mypy version used: 1.16
- Mypy command-line flags: defaults
- Mypy configuration options from
mypy.ini(and other config files): none - Python version used: 3.13
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 54
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/mypy
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
bug topic-configuration topic-error-reporting
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
bancolombia/sentinel#23 ·
-
test md OffenCI
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100