Announcing sqlalchemy-helpers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey folks!

A few months ago I started a library to share some boilerplate code in our applications when it comes to SQLAlchemy.

Remember the thread about Flask and SQLAlchemy? It ended with us admitting that Flask-SQLAlchemy is pretty cool, but does not cover our non-Flask needs, can introduce issues with scripts that do multithreading manually, and ties us into Flask more than what we may feel comfortable with.
But the problem remains the same: by doing SQLAlchemy integration manually over the years, we've copied code from one project to the next, improving it when we were working on it but not backporting those improvements to older projects, and having rather sparse (I should say "distributed" ;-) ) knowledge of what the SQLAlchemy & Alembic best practices are (everybody here knows about constraint naming conventions? Foreign key enforcement on SQLite?)

In the spirit of avoiding code duplication and sharing maintenance, I've started the sqlalchemy-helpers library.
The idea is to standardize on best practices with SQLAlchemy & Alembic usage without depending on Flask, but with an optional Flask integration. The README has a list of features and usage examples, so I'll let you go over there and skim read it.

Basically what I've done is go over all our Flask apps using SQLAlchemy, look at what features they implemented, and bring them into sqlalchemy-helpers. As a result if you decide to move to it you will only gain features.
The only notable exception is the pagination system that Flask-SQLAlchemy implements and that at least one project has copied. If it proves useful, we can always bring it to sqlalchemy-helpers, but let's start small for now.
It targets SQLAlchemy 1.3+ & 2.0, Flask 2.0+ and Python 3.6+.

I've used it personally for a few months already and I'd say it works quite well. I'm very interested in feedback. My next step is to improve user documentation because right now it's only the README and the APIdocs.
I hope we can join forces and maintain this sort of boilerplate code in a central place.

Cheers!
Aurélien

_______________________________________________
infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure

[Index of Archives]     [Fedora Development]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux