commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r7314 - trunk/gnue-common/src/datasources/drivers/file


From: reinhard
Subject: [gnue] r7314 - trunk/gnue-common/src/datasources/drivers/file
Date: Thu, 7 Apr 2005 16:08:29 -0500 (CDT)

Author: reinhard
Date: 2005-04-07 16:08:28 -0500 (Thu, 07 Apr 2005)
New Revision: 7314

Modified:
   trunk/gnue-common/src/datasources/drivers/file/Base.py
   trunk/gnue-common/src/datasources/drivers/file/csvfile.py
   trunk/gnue-common/src/datasources/drivers/file/dbffile.py
   trunk/gnue-common/src/datasources/drivers/file/inifile.py
Log:
Use _query, _count, and _fetch methods in file based ResultSet classes.


Modified: trunk/gnue-common/src/datasources/drivers/file/Base.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/Base.py      2005-04-07 
16:24:27 UTC (rev 7313)
+++ trunk/gnue-common/src/datasources/drivers/file/Base.py      2005-04-07 
21:08:28 UTC (rev 7314)
@@ -82,43 +82,30 @@
   """
 
   # ---------------------------------------------------------------------------
-  # Constructor
+  # Implementation of virtual methods
   # ---------------------------------------------------------------------------
 
-  def __init__ (self, dataObject, connection = None, table = None,
-                conditions = None, readonly = False, masterRecordSet = None):
+  def _query_object (self, connection, table, fieldnames, condition, 
sortorder):
+    self.__data = connection.getFile (table)
+    self.__fieldnames = fieldnames
+    self.__condition = condition        # currently not honored
+    self.__sortorder = sortorder        # currently not honored
 
-    Base.ResultSet.__init__ (self, dataObject, readonly = readonly,
-                             masterRecordSet = masterRecordSet)
+  # ---------------------------------------------------------------------------
 
-    self.__connection = connection
-    self.__table      = table
-    self.__conditions = conditions
-    self.__dataLoaded = False
+  def _count (self):
+    return len (self.__data)
 
-
   # ---------------------------------------------------------------------------
-  # Create RecordSet instances
-  # ---------------------------------------------------------------------------
 
-  def _loadNextRecord (self):
+  def _fetch (self, cachesize):
+    for row in self.__data:
+      result = {}
+      for fn in self.__fieldnames:
+        result [fn] = row.get (fn)
+      yield result
 
-    if not self.__connection:
-      return False
 
-    if self.__dataLoaded:
-      return False
-
-    for row in self.__connection.getFile (self.__table):
-      record = self._recordSetClass (parent = self, initialData = row)
-      self._cachedRecords.append (record)
-      self._recordCount += 1
-
-    self.__dataLoaded = True
-
-    return True
-
-
 # =============================================================================
 # DataObject class
 # =============================================================================
@@ -130,16 +117,7 @@
 
   _resultSetClass = ResultSet
 
-  # ---------------------------------------------------------------------------
-  # Create RecordSet instances
-  # ---------------------------------------------------------------------------
 
-  def _createResultSet (self, conditions = None, readOnly = False,
-                        masterRecordSet = None, sql = ""):
-    return ResultSet (self, self._connection, self.table, conditions, readOnly,
-                      masterRecordSet)
-
-
 # =============================================================================
 # Connection class
 # =============================================================================
@@ -227,10 +205,7 @@
     else:
       return ['data']
 
-
   # ---------------------------------------------------------------------------
-  # Virtual methods (to be implemented by descendants)
-  # ---------------------------------------------------------------------------
 
   def _listFields (self, filename, table):
     """
@@ -253,10 +228,7 @@
     """
     return []
 
-
   # ---------------------------------------------------------------------------
-  # Virtual methods (to be implemented by descendants)
-  # ---------------------------------------------------------------------------
 
   def _loadFile (self, filename, table):
     """

Modified: trunk/gnue-common/src/datasources/drivers/file/csvfile.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/csvfile.py   2005-04-07 
16:24:27 UTC (rev 7313)
+++ trunk/gnue-common/src/datasources/drivers/file/csvfile.py   2005-04-07 
21:08:28 UTC (rev 7314)
@@ -84,5 +84,5 @@
     fieldnames = [field.lower () for field in headers]
     reader = csv.DictReader (f, fieldnames, dialect = dialect)
 
-    # Reader behaves like a list of dictionaries, so we can just return it
-    return reader
+    # Make a real list of dictionaries
+    return [row for row in reader]

Modified: trunk/gnue-common/src/datasources/drivers/file/dbffile.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/dbffile.py   2005-04-07 
16:24:27 UTC (rev 7313)
+++ trunk/gnue-common/src/datasources/drivers/file/dbffile.py   2005-04-07 
21:08:28 UTC (rev 7314)
@@ -70,5 +70,5 @@
 
     fieldnames = [(field [0]).lower () for field in f.fields]
 
-    for record in f:
-      yield dict (zip (fieldnames, record))
+    # Make a real list of dictionaries
+    return [dict (zip (fieldnames, record)) for record in f]

Modified: trunk/gnue-common/src/datasources/drivers/file/inifile.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/inifile.py   2005-04-07 
16:24:27 UTC (rev 7313)
+++ trunk/gnue-common/src/datasources/drivers/file/inifile.py   2005-04-07 
21:08:28 UTC (rev 7314)
@@ -105,10 +105,8 @@
 
     parser = self.__getParser (filename, table)
 
-    for section in parser.sections ():
-      record = dict (parser.items (section))
-      record ['_section_name'] = section
-      yield record
+    return [dict ([('_section_name', section)] + parser.items (section)) \
+            for section in parser.sections ()]
 
 
   # ---------------------------------------------------------------------------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]