The Dejavu Object-Relational Mapper (version 1.5.0RC1) is now available and in the public domain. Get it at http://projects.amor.org/dejavu, or from PyPI: http://www.python.org/pypi/Dejavu/1.5.0RC1.
Dejavu is an Object-Relational Mapper for Python applications. It is designed to provide the "Model" third of an MVC application. Dejavu avoids making decisions in the framework which are better left to developers, and avoids forcing developers to make decisions which are better left to deployers. In particular, deployers are allowed to mix and match storage mechanisms, including how and when to cache objects in memory, making it easier for deployers to tune applications to their particular environment. Dejavu provides: Modeling Layer 1. A base Unit class for persisting objects to storage. 2. A base UnitProperty class for persistent object attributes. 3. ID Sequencers. 4. Associations between Unit classes. 5. Unit Engines, Rules, and Collections. 6. Aggregation and analysis tools. Application Layer 1. Expressions: pure Python lambda querying. This is perhaps the most appealing feature of Dejavu. 2. Sandboxes, which serve as Identity Maps, transaction boundaries, and per-connection caches. 3. An Arena class for application-level data. Storage Layer 1. A base StorageManager class and specification. Unlike many ORMs, Dejavu does not require you to have complete control of the back end. 2. Specific StorageManagers for: a. Microsoft SQL Server/MSDE b. Microsoft Access (Jet) c. PostgreSQL d. MySQL e. SQLite f. Shelve g. Firebird h. RAM i. Filesystem What's New in 1.5: http://projects.amor.org/dejavu/wiki/WhatsNewIn15 * Native ID sequencing. * Distributed transactions and tested isolation levels. * Complete database introspection and auto discovery. * New Firebird support. * New RAM Storage Manager. * New psycopg2 support. * New support for using the sqlite3 module built into Python 2.5. * Support for typed and typeless SQLite. * Support for SQLite :memory: databases. * Complete numeric precision and scale support. * Native date function support. * Complete M x N type-adaptation. * Bulletproof encoding support. * New 'range' function which returns the closed interval [min(attr), ..., max(attr)]. * New 'sum' function which returns the sum of all non-None values for the given cls.attr. * Multiple and custom Associations. * Improved performance (especially ADO). * New JSON encoder/decoder. * Short config names for Storage Managers. * ADO: New support for the CURRENCY datatype. * ADO: Improved string comparisons using Convert and StrComp. Upgrading to 1.5: See http://projects.amor.org/dejavu/wiki/UpgradeTo1.5 Documentation for 1.5: http://projects.amor.org/docs/dejavu/1.5.0RC1/ Robert Brewer System Architect Amor Ministries [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list