[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/RDB - ResultSet.py:1.2 Row.py:1.2 Util.py:1.2

Kapil Thangavelu kvthan@wm.edu
Mon, 1 Jul 2002 10:40:05 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/RDB
In directory cvs.zope.org:/tmp/cvs-serv31107

Modified Files:
	ResultSet.py Row.py Util.py 
Log Message:
fixed some problems with subclassing from list, by making the result set,
instantiate data row objects at initilization, might need to refactor for
optimization latter.



=== Zope3/lib/python/Zope/App/RDB/ResultSet.py 1.1 => 1.2 ===
 $Id$
 """
+ 
+class ResultSet(list):    
+    """
+    Database Result Set. 
 
-class ResultSet(list): 
-
+    currently we don't do lazy instantation of rows.
+    """
+    
+    __slots__ = ('names', 'row_klass')
+    
     def __init__(self, names, data, row_klass):
-        self.names = names
+        self.names = tuple(names)
         self.row_klass = row_klass
-        super(ResultSet).__init__(self, data)
-
-    def __getitem__(self, idx):
-        return self.row_klass(list.__getitem__(idx))
+        super(ResultSet, self).__init__(map(row_klass, data))
     
-    
-
-


=== Zope3/lib/python/Zope/App/RDB/Row.py 1.1 => 1.2 ===
             setattr(self, k, v)
 
+    def __str__(self):
+        return "row class %s"%str(self.__slots__)
+            
 def row_class_factory(columns):
 
     klass_namespace = {}


=== Zope3/lib/python/Zope/App/RDB/Util.py 1.1 => 1.2 ===
 
 
+
+
+