Dejavu 1.3, a Python ORM

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Robert Brewer

    #1

    Dejavu 1.3, a Python ORM

    The Dejavu Object-Relational Mapper (version 1.3) is now available and
    in the public domain. Get it at svn://casadeamor.com/dejavu/trunk
    or http://www.aminus.org/rbre/python/.

    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 Unit Property 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 Unit queries. This is perhaps the most
    appealing feature of Dejavu. However, since it uses bytecode hacks,
    Dejavu only runs on CPython.
    2. Sandboxes, which serve as Identity Maps and per-connection caches.
    Unit objects are "memorized" and "recalled" from a Sandbox, using
    Expressions.
    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 via ADO.
    b. Microsoft Access (Jet) via ADO.
    c. PostgreSQL.
    d. MySQL.
    e. SQLite.
    f. ODBC databases (not complete, and probably never will be).
    g. Shelve to dbm.

    Major changes from 1.2:
    1. Support for PostgreSQL, MySQL, and SQLite.
    2. New db module which abstracts common DB StorageManager code.
    3. Full support for decimal and fixedpoint.
    4. zoo_fixture.py brings common tests to all StorageManagers .

    Dejavu welcomes your use and feedback as an application developer.

    Dejavu also welcomes framework developers. New code for additional
    Storage Managers, analysis tools, or other portions will be gladly
    reviewed for inclusion in future releases. Drop me an email if you
    feel so inclined.


    Robert Brewer
    MIS
    Amor Ministries
    fumanchu@amor.o rg
Working...