[Top][All Lists]
[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 ()]
# ---------------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r7314 - trunk/gnue-common/src/datasources/drivers/file,
reinhard <=