[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 ===
+
+
+