Elixir is a declarative layer on top of the SQLAlchemy library. It is a fairly thin wrapper, which provides the ability to create simple Python classes that map directly to relational database tables (this pattern is often referred to as the Active Record design pattern), providing many of the benefits of traditional databases without losing the convenience of Python objects.
Elixir will enable one to define the different fields of an object in one step, directly in the class definition, instead of the three step process SQLAlchemy requires (class, mapper and table). This is often called the Active Record pattern.
Elixir can generate database tables corresponding to the fields defined in classes. The default "translation" rules are simple and should be suitable for most projects, but those rules can be highly customized. Generally speaking, Elixir will minimize repetition: you don't need not duplicate information: for example, in the table definition and in the class definition...
Elixir is intended to replace the ActiveMapper SQLAlchemy extension, and the TurboEntity project but does not intend to replace SQLAlchemy's core features, and 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.