[Checkins] SVN: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py better support for SQLAlchemy declarative layer

Andreas Jung andreas at andreas-jung.com
Fri Dec 12 02:18:42 EST 2008


Log message for revision 93928:
  better support for SQLAlchemy declarative layer
  

Changed:
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py

-=-
Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py	2008-12-12 06:10:41 UTC (rev 93927)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py	2008-12-12 07:18:41 UTC (rev 93928)
@@ -16,6 +16,7 @@
 
 from sqlalchemy import Table, MetaData 
 from sqlalchemy.orm import mapper, relation, class_mapper
+from sqlalchemy.ext.declarative import DeclarativeMeta
 
 marker = object
 
@@ -115,7 +116,6 @@
         self._dependent_tables = None
         self._lock = threading.Lock()
 
-
     def getMapper(self, name, schema='public'):
         """ return a (cached) mapper class for a given table 'name' """
 
@@ -128,6 +128,12 @@
             if self._model.has_key(name):            
                 table = self._model[name].get('table')
 
+                # support for SA declarative layer
+                mapper_class = self._model[name].get('mapper_class')
+                if isinstance(mapper_class, DeclarativeMeta):
+                    self._registerMapper(mapper_class, name)
+                    return mapper_class
+
             # if not: introspect table definition
             if table is None:
 



More information about the Checkins mailing list