R
Robert Brewer
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
(e-mail address removed)
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
(e-mail address removed)