Need help annotating class with dynamic inheritance
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
To Reproduce
Gist URL: https://gist.github.com/mypy-play/d139ee55a5729d2ec5b63d4ceaeb5a33
Playground URL: https://mypy-play.net/?mypy=latest&python=3.12&gist=d139ee55a5729d2ec5b63d4ceaeb5a33
$ python test_mypy.py
header
1
header
2
$ mypy test_mypy.py
Warning: --strict-concatenate is deprecated; use --extra-checks instead
test_mypy.py:27: error: "__new__" must return a class instance (got "BaseClassT") [misc]
test_mypy.py:36: error: Unsupported argument 1 for "super" [misc]
test_mypy.py:38: error: Returning Any from function declared to return "BaseClassT" [no-any-return]
test_mypy.py:41: error: Non-overlapping identity check (left operand type: "type[BaseClassT]", right operand type: "type[Type1]") [comparison-overlap]
test_mypy.py:42: error: Returning Any from function declared to return "None" [no-any-return]
test_mypy.py:42: error: "Example[BaseClassT]" has no attribute "method1"; maybe "method"? [attr-defined]
test_mypy.py:43: error: Non-overlapping identity check (left operand type: "type[BaseClassT]", right operand type: "type[Type2]") [comparison-overlap]
test_mypy.py:44: error: Returning Any from function declared to return "None" [no-any-return]
test_mypy.py:44: error: "Example[BaseClassT]" has no attribute "method2"; maybe "method"? [attr-defined]
test_mypy.py:48: error: Missing type parameters for generic type "Example" [type-arg]
test_mypy.py:54: error: Cannot instantiate abstract class "ExampleSubclass" with abstract attribute "base_class" [abstract]
test_mypy.py:55: error: Cannot instantiate abstract class "ExampleSubclass" with abstract attribute "base_class" [abstract]
Found 12 errors in 1 file (checked 1 source file)
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem verlinkten gist oder Playground und führe dann die gezeigten Befehle python test_mypy.py und mypy test_mypy.py aus, um die Diagnosen in test_mypy.py zu reproduzieren. Verfolge die gemeldeten Fehler rund um die dynamisch geerbte Klasse und vergleiche sie mit der Laufzeitausgabe. Erledigt bedeutet, das erwartete Typisierungsverhalten und eine klare minimale Reproduktion für jede weitere Untersuchung festzulegen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100