Incorrect stub generation for subclasses of `pydantic.BaseModel`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
stubgen does not properly generate ellipses for default values set in the scope of the class body of a Pydantic model.
To Reproduce
Running stubgen -m example
# example.py
from pydantic import BaseModel
class Foo(BaseModel):
abc: int = 1
xyz: str = "abc"
Should produce
Expected Behavior
# example.pyi
from pydantic import BaseModel
class Foo(BaseModel):
abc: int = ...
xyz: str = ...
stubgen should be populating the default annotation with ellipses, instead they are missing.
Actual Behavior
# example.pyi
from pydantic import BaseModel
class Foo(BaseModel):
abc: int
xyz: str
Your Environment
- Mypy version used:
mypy 1.8.0 (compiled: yes) - Mypy command-line flags:
stubgen -m example - Mypy configuration options from
mypy.ini(and other config files):N/A - Python version used:
3.11.8
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 damit, das Problem mit dem gezeigten example.py und stubgen -m example zu reproduzieren, und verfolge dann den stubgen-Pfad, der annotierte Klassenkörper-Standardwerte für Unterklassen von pydantic.BaseModel verarbeitet. Erledigt ist die Aufgabe, wenn das generierte example.pyi für beide Standardwerte ... enthält und eine Regressionstestabdeckung für diesen Fall vorhanden ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 45/100