[Checkins] SVN: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/ added registerMapper() to wrapper API

Andreas Jung andreas at andreas-jung.com
Mon Apr 16 12:39:13 EDT 2007


Log message for revision 74187:
  added registerMapper() to wrapper API
  

Changed:
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/interfaces.py
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py

-=-
Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt	2007-04-16 16:32:19 UTC (rev 74186)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt	2007-04-16 16:39:11 UTC (rev 74187)
@@ -1,9 +1,13 @@
 0.1.7 (unreleased)
 
-   - replace 'echo' parameter of the constructor with a generic **kw
+   - replaced 'echo' parameter of the constructor with a generic **kw
      parameter in order to provide full parameter support for
      create_engine. Optional arguments passed to the constructur are
      passed directly to create_engine()
+
+   - fixed the documentation a bit
+
+   - added registerMapper() to BaseWrapper class
  
 0.1.6 (28.03.2007)
 

Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py	2007-04-16 16:32:19 UTC (rev 74186)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py	2007-04-16 16:39:11 UTC (rev 74187)
@@ -79,6 +79,9 @@
     def session(self):
         return sqlalchemy.create_session(self._engine)
 
+    def registerMapper(self, mapper, name):
+        self._mappers.registerMapper(mapper, name)
+
     def getMapper(self, tablename, schema='public'):
         return self._mappers.getMapper(tablename, schema)
 

Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/interfaces.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/interfaces.py	2007-04-16 16:32:19 UTC (rev 74186)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/interfaces.py	2007-04-16 16:39:11 UTC (rev 74187)
@@ -41,6 +41,8 @@
 
 #    session = Object(title=u'Computed attributed (creates a new sqlalchemy.Session')
 
+    def registerMapper(mapper, name):
+        """ register your own mapper under a custom name """
 
     def getMapper(tablename, schema='public'):
         """ return a mapper class for a table given by its

Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py	2007-04-16 16:32:19 UTC (rev 74186)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/mapper.py	2007-04-16 16:39:11 UTC (rev 74187)
@@ -127,12 +127,17 @@
                 properties[table_refname] = relation(table_ref_mapper)
        
             # create a mapper and cache it 
-            self._lock.acquire()
-            self[name] = self._mapper_factory(table, 
-                                              properties=properties, 
-                                              cls=mapper_class)
+            mapper =  self._mapper_factory(table, 
+                                           properties=properties, 
+                                           cls=mapper_class)
+            self.registerMapper(mapper, name)
 
-            self._lock.release()
+        return self[name]
 
-        return self[name]
-        
+
+    def registerMapper(self, mapper, name):
+        """ register a mapper under a given name """
+    
+        self._lock.acquire()
+        self[name] = mapper
+        self._lock.release()



More information about the Checkins mailing list