Flask-SQLAlchemy-Lite support for flask-migrate
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 5.1k
- Forks
- 2.1k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 82
Beschreibung
Flask-SQLAlchemy-Lite was just released which is intended to be a replacement for Flask-SQLAlchemy.
https://flask-sqlalchemy-lite.readthedocs.io/en/stable/
With that there is then a type conflict with flask_migrate:
https://github.com/python/typeshed/blob/main/stubs/Flask-Migrate/flask_migrate/__init__.pyi#L52
It expects flask_sqlalchemy.extension.SQLAlchemy, but flask_sqlalchemy_lite._extension.SQLAlchemy is now a compatible alternative
I'm pretty new to python so I'm not sure what the best approach to allow the flask_migrate typings to allow both.
Would it work to:
# ...
from flask_sqlalchemy import SQLAlchemy
from flask_sqlalchemy_lite import SQLAlchemy as SQLAlchemyLite
# ...
class Migrate:
configure_callbacks: list[_ConfigureCallback]
db: SQLAlchemy | SQLAlchemyLite | None
# ...
Or is there a better approach?
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 Flask-Migrate-Stub unter stubs/Flask-Migrate/flask_migrate/init.pyi, insbesondere mit dem SQLAlchemy-Typ ungefähr in Zeile 52, und prüfe die verlinkte Dokumentation zu Flask-SQLAlchemy-Lite. Bestimme einen Typisierungsansatz, der beide SQLAlchemy-Implementierungen akzeptiert, ohne einen Import- oder Kompatibilitätskonflikt einzuführen; fertig ist es, wenn der Stub beide Integrationen korrekt unterstützt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- flask, python, sqlalchemy
- Bereich
- backend, tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100