[<<] Industrie Toulouse

While clicking around this morning, I came across Modeling, an Object-Relational Bridge for Python. There are a few higher level database toolkits available for Python, but this is the first one that I think I can take seriously. It takes a lot of direct inspiration from Apple's Enterprise Objects Framework, now a key component of the WebObjects application server.

Modeling takes the SQL out of the Python. Most other Python O-R Mapping systems I've seen leave it in - which is rather cheap (in my opinion). It's like mixing Python (or any other language) and HTML. Modeling keeps an XML file as the actual model, which describes the tables and their relationships to classes/objects. When making custom objects, there are a few things you have to do in order to ensure database updates, but that's why EOF was a framework. Still, the goal behind Modeling, and also behind Enterprise Objects Framework is that the model and the code aren't tightly woven together, and that no SQL should exist in the business object code (in theory allowing an application to be moved to a completely different database just by modifying/replacing the model but not touching the classes).

Apparently, it even comes with a Zope product/application for designing models through the web.