[Checkins] SVN: megrok.rdb/trunk/src/megrok/rdb/ A few cleanups concerning location support.

Martijn Faassen faassen at infrae.com
Thu Aug 21 10:25:00 EDT 2008


Log message for revision 90066:
  A few cleanups concerning location support.
  

Changed:
  U   megrok.rdb/trunk/src/megrok/rdb/components.py
  U   megrok.rdb/trunk/src/megrok/rdb/tests/location.py

-=-
Modified: megrok.rdb/trunk/src/megrok/rdb/components.py
===================================================================
--- megrok.rdb/trunk/src/megrok/rdb/components.py	2008-08-21 14:16:07 UTC (rev 90065)
+++ megrok.rdb/trunk/src/megrok/rdb/components.py	2008-08-21 14:24:59 UTC (rev 90066)
@@ -10,6 +10,11 @@
 from z3c.saconfig import Session
 
 class Model(Context):
+    implements(ILocation)
+
+    __parent__ = None
+    __name__ = None
+    
     def __init__(self, **kwargs):
         # XXX can we use the __init__ that sqlalchemy.ext.declarative sets up?
         for k in kwargs:
@@ -18,6 +23,17 @@
                                 (k, type(self).__name__))
             setattr(self, k, kwargs[k])
 
+class LocatedModel(Model):
+    implements(ILocation)
+
+    @property
+    def __parent__(self):
+        return
+
+    @property
+    def __name__(self):
+        return
+    
 def default_keyfunc(node):
     primary_keys = node.__table__.primary_key.keys()
     if len(primary_keys) == 1:
@@ -29,6 +45,9 @@
 class Container(MappedCollection):
     implements(IContainer, ILocation)
 
+    __parent__ = None
+    __name__ = None
+    
     def __init__(self, *args, **kw):
         rdb_key = directive.key.bind().get(self)
         if rdb_key:

Modified: megrok.rdb/trunk/src/megrok/rdb/tests/location.py
===================================================================
--- megrok.rdb/trunk/src/megrok/rdb/tests/location.py	2008-08-21 14:16:07 UTC (rev 90065)
+++ megrok.rdb/trunk/src/megrok/rdb/tests/location.py	2008-08-21 14:24:59 UTC (rev 90066)
@@ -75,29 +75,16 @@
 
 from sqlalchemy import Column, ForeignKey
 from sqlalchemy.types import Integer, String
-from sqlalchemy.orm import relation, MapperExtension, EXT_CONTINUE
+from sqlalchemy.orm import relation
 
 metadata = rdb.MetaData()
 
 rdb.metadata(metadata)
-
-# class MyExtension(MapperExtension):
-#     def init_instance(self, mapper, class_, oldinit, instance, args, kwargs):
-#         if isinstance(instance, Department):
-#             instance.courses.__name__ = u'courses'
-#             instance.courses.__parent__ = instance
-#         return EXT_CONTINUE
     
 class Courses(rdb.Container):
-    __parent__ = None
-    __name__ = None
-   
-class Department(rdb.Model):
-#     __mapper_args__ = {'extension': MyExtension()}
+    pass
 
-    __parent__ = None
-    __name__ = None
-    
+class Department(rdb.Model):    
     id = Column('id', Integer, primary_key=True)
     name = Column('name', String(50))
     courses = relation('Course', 
@@ -105,9 +92,6 @@
                        collection_class=Courses)
 
 class Course(rdb.Model):
-    __parent__ = None
-    __name__ = None
-   
     id = Column('id', Integer, primary_key=True)
     department_id = Column('department_id', Integer, 
                            ForeignKey('department.id'))



More information about the Checkins mailing list