August 2007
Geniusql python ORM
Geniusql is a public domain, low-level Object-Relational Mapper for Python applications. If you're familiar with Martin Fowler's work, you can think of Geniusql as providing a Data Source layer. It primarily uses a generic Table Data Gateway architecture (as opposed to the more tightly-coupled Active Record architecture recently popularized by Ruby On Rails and Django). If you want a more powerful solution, we recommend skipping Active Record and going straight to a Data Mapper like Dejavu. Dejavu uses Geniusql behind the scenes for RDBMS back ends, but allows you to mix and match them with RAM, filesystem, and other stores.
July 2007
Canonical Releases Storm as Open Source | Ubuntu
New Python-based database communication tool represents first open source component of Launchpad
LONDON, July 9, 2007 – Canonical Ltd today announced the release of Storm, a generic open source object relational mapper (ORM) for Python. Storm is designed to support communication with multiple databases simultaneously. Canonical is best known for the popular Ubuntu operating system and Launchpad, a web-based collaboration platform for open source developers.
"Storm is an ORM that simplifies the development of database-backed applications in Python, especially for projects that use very large databases or multiple databases with a seamless web front-end", said Gustavo Niemeyer, lead developer of Storm at Canonical. "Storm is particularly designed to feel very natural to Python programmers, and exposes multiple databases as /stores/ in a clean and easy to use fashion."
The project has been in development for more than a year for use in Canonical projects such as Launchpad, and is now publicly available under the LGPL license. This will be the first complete Launchpad component to be released as open source software.
"We're excited about using Storm for Launchpad, and that it is being released as open source. Storm's API is clear and well designed, making it a joy to work with, " said Steve Alexander, Launchpad Product Manager at Canonical. "The scalability advantages of Storm's architecture are important for us to ensure that Launchpad continues to perform well as the number of Launchpad users grows." Launchpad currently includes developers data for several thousand projects and is used by tens of thousands of developers, translators, and other free software contributors.
The Storm project welcomes participation, and has a new website at http://storm.canonical.com. That site includes a tutorial, and links to allow developers to download, report bugs and join the mailing list.
FrontPage - Storm
Storm is an object-relational mapper (ORM) for Python developed at Canonical. The project has been in development for more than a year for use in Canonical projects such as [WWW] Launchpad, and has recently been released as an open-source product.
March 2007
Elixir - Elixir
About
Elixir is a declarative layer on top of SQLAlchemy. It is a fairly thin wrapper, which provides the ability to define model objects following the Active Record design pattern, and using a DSL syntax similar to that of the Ruby on Rails ActiveRecord system.
Elixir does not intend to replace SQLAlchemy's core features, but instead focuses on providing a simpler syntax for defining model objects when you do not need the full expressiveness of SQLAlchemy's manual mapper definitions.
Example
Here is a very short model definition example, so that you can see what the syntax look like. For some explanation and more complete examples, please have a look at the tutorial or at the examples page.
class Person(Entity):
has_field('name', Unicode(255))
has_many('addresses', of_kind='Address')
class Address(Entity):
has_field('email', String(128))
belongs_to('person', of_kind='Person')
History
In 2006, Jonathan LaCour discovered the fantastic SQLAlchemy project, and really liked its power and flexibility, but found that in many simple cases he would prefer a simpler and more attractive way to declare his model objects. As a result, Jonathan spent a few hours on a weekend to create the ActiveMapper SQLAlchemy extension. For a weekend's worth of work, it wasn't half bad, and gained a little bit of traction in the wild. But, over time, it became clear that ActiveMapper needed a lot of work to stabilize and become more useful.
Later that year, Daniel Haus released his own layer on top of SQLAlchemy, called TurboEntity. TurboEntity solved some of the problems of ActiveMapper, and took a slightly different approach to the problem. TurboEntity also began to gain some ground and it became clear to both Daniel and Jonathan that they needed to work together.
Around the same time, Gaëtan de Menten contacted both Jonathan and Daniel to reveal that he had been working on his own layer as well. A few weeks later, all three agreed to work together to create a replacement for TurboEntity and ActiveMapper using their collective experience and knowledge.
The Name
The Oxford English Dictionary defines Elixir as: "a magical or medicinal potion, a preparation that was supposedly able to change metals into gold, sought by alchemists."
The Future
The eventual goal of the Elixir project is to become an official SQLAlchemy extension. But, before we submit elixir for inclusion within SQLAlchemy, we want the opportunity to solicit feedback and contributions from users to make sure that we have ironed out any bugs, missing features, syntax changes, or documentation deficiencies.
November 2006
SQLAlchemy - The Database Toolkit for Python
by 7 others (via)SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.
1
(5 marks)