commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: [gnue] r7797 - trunk/gnue-common/src/datasources/drivers/file
Date: Sun, 7 Aug 2005 14:27:52 -0500 (CDT)

Author: reinhard
Date: 2005-08-07 14:27:51 -0500 (Sun, 07 Aug 2005)
New Revision: 7797

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:
Further cleanup, docstrings and comments.


Modified: trunk/gnue-common/src/datasources/drivers/file/Base.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/Base.py      2005-08-07 
19:09:50 UTC (rev 7796)
+++ trunk/gnue-common/src/datasources/drivers/file/Base.py      2005-08-07 
19:27:51 UTC (rev 7797)
@@ -25,6 +25,8 @@
 Generic database driver plugin for file based backends.
 """
 
+__all__ = ['Behavior', 'ResultSet', 'Connection']
+
 __noplugin__ = True
 
 import glob
@@ -54,7 +56,7 @@
     the given parent object (which is of type GSSchema).
     """
 
-    filename = self.__connection.getFilename ('*')
+    filename = self.__connection._getFilename ('*')
 
     for fname in glob.glob (filename):
       tables = self.__connection._listTables_ (fname)
@@ -95,7 +97,7 @@
 
   def _query_object_ (self, connection, table, fieldnames, condition, 
sortorder,
                      distinct):
-    self.__data = connection.getFile (table)
+    self.__data = connection._getFile (table)
     self.__fieldnames = fieldnames
     self.__condition  = condition       # currently not honored
     self.__sortorder  = sortorder       # currently not honored
@@ -155,7 +157,7 @@
   # ---------------------------------------------------------------------------
 
   def _requery_ (self, table, oldfields, fields):
-    for row in self.getFile (table):
+    for row in self._getFile (table):
       found = True
       for (fieldname, value) in oldfields:
         if row.get (fieldname) != value:
@@ -171,8 +173,14 @@
   # Get the filename for a given table
   # ---------------------------------------------------------------------------
 
-  def getFilename (self, table):
+  def _getFilename (self, table):
+    """
+    Return the filename to be used for a given table.
 
+    @param table: Table name.
+    @return: Filename.
+    """
+
     return self.__filename % {'table': table}
 
 
@@ -180,11 +188,18 @@
   # Get the data of a file
   # ---------------------------------------------------------------------------
 
-  def getFile (self, table):
+  def _getFile (self, table):
+    """
+    Return data from the file.
 
-    return self._loadFile_ (self.getFilename (table), table)
+    @param table: Table name.
+    @return: iterable object of fieldname/value dictionaries containing the
+        records of the file.
+    """
 
+    return self._loadFile_ (self._getFilename (table), table)
 
+
   # ---------------------------------------------------------------------------
   # Virtual methods (to be implemented by descendants)
   # ---------------------------------------------------------------------------
@@ -211,7 +226,7 @@
     @return: GSTables instance or None
     """
 
-    f = self.getFilename ('\n')
+    f = self._getFilename ('\n')
     if '\n' in f:
       (prefix, postfix) = f.split ('\n', 1)
       if filename [:len (prefix)] == prefix and \

Modified: trunk/gnue-common/src/datasources/drivers/file/csvfile.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/csvfile.py   2005-08-07 
19:09:50 UTC (rev 7796)
+++ trunk/gnue-common/src/datasources/drivers/file/csvfile.py   2005-08-07 
19:27:51 UTC (rev 7797)
@@ -25,6 +25,8 @@
 Database driver plugin for CSV file backends.
 """
 
+__all__ = ['Connection']
+
 import csv
 
 from gnue.common.datasources import GSchema
@@ -80,27 +82,6 @@
   """
 
   # ---------------------------------------------------------------------------
-  # Prepare the file
-  # ---------------------------------------------------------------------------
-
-  def __prepareFile (self, filename):
-
-    f = file (filename, 'rb')
-
-    # Let the sniffer determine the file format
-    sniffer = csv.Sniffer ()
-    dialect = sniffer.sniff (f.readline ())
-
-    # Rewind file
-    f.seek (0)
-
-    # Read the first row to get the field names
-    fieldnames = (csv.reader (f, dialect)).next ()
-
-    return (f, dialect, fieldnames)
-
-
-  # ---------------------------------------------------------------------------
   # Iterate through the list of field names
   # ---------------------------------------------------------------------------
 
@@ -131,3 +112,24 @@
 
     # Make a real list of dictionaries
     return [row for row in reader]
+
+
+  # ---------------------------------------------------------------------------
+  # Prepare the file
+  # ---------------------------------------------------------------------------
+
+  def __prepareFile (self, filename):
+
+    f = file (filename, 'rb')
+
+    # Let the sniffer determine the file format
+    sniffer = csv.Sniffer ()
+    dialect = sniffer.sniff (f.readline ())
+
+    # Rewind file
+    f.seek (0)
+
+    # Read the first row to get the field names
+    fieldnames = (csv.reader (f, dialect)).next ()
+
+    return (f, dialect, fieldnames)

Modified: trunk/gnue-common/src/datasources/drivers/file/dbffile.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/dbffile.py   2005-08-07 
19:09:50 UTC (rev 7796)
+++ trunk/gnue-common/src/datasources/drivers/file/dbffile.py   2005-08-07 
19:27:51 UTC (rev 7797)
@@ -25,6 +25,8 @@
 Database driver plugin for DBF file backends.
 """
 
+__all__ = ['Connection']
+
 from gnue.common.utils import dbf
 from gnue.common.datasources import GSchema
 from gnue.common.datasources.drivers.file import Base

Modified: trunk/gnue-common/src/datasources/drivers/file/inifile.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/file/inifile.py   2005-08-07 
19:09:50 UTC (rev 7796)
+++ trunk/gnue-common/src/datasources/drivers/file/inifile.py   2005-08-07 
19:27:51 UTC (rev 7797)
@@ -25,6 +25,8 @@
 Database driver plugin for INI style configuration file backends.
 """
 
+__all__ = ['Connection']
+
 import ConfigParser
 
 from gnue.common.apps import errors
@@ -77,10 +79,16 @@
 # =============================================================================
 
 class DuplicateSectionError (errors.UserError):
+  """
+  Duplicate section name on insert or update.
+  """
   def __init__ (self, section):
     errors.UserError.__init__ (self, u_("Duplicate section name %s") % section)
 
 class MissingSectionError (errors.UserError):
+  """
+  Section name not given on insert or update.
+  """
   def __init__ (self):
     errors.UserError.__init__ (self, u_("Missing section name"))
 
@@ -110,19 +118,6 @@
 
 
   # ---------------------------------------------------------------------------
-  # Prepare the file
-  # ---------------------------------------------------------------------------
-
-  def __getParser (self, filename, table):
-
-    if not self.__parsers.has_key (table):
-      parser = ConfigParser.RawConfigParser ()
-      parser.read (filename)
-      self.__parsers [table] = parser
-    return self.__parsers [table]
-
-
-  # ---------------------------------------------------------------------------
   # Iterate through the list of field names
   # ---------------------------------------------------------------------------
 
@@ -161,17 +156,16 @@
 
 
   # ---------------------------------------------------------------------------
-  # Set fields (used by _insert_ and _update_)
+  # Prepare the file
   # ---------------------------------------------------------------------------
 
-  def __setFields (self, parser, section, fields):
+  def __getParser (self, filename, table):
 
-    for (field, value) in fields.items ():      
-      if field != '_section_name':
-        if value == '' or value is None:
-          parser.remove_option (section, field)
-        else:
-          parser.set (section, field, value)
+    if not self.__parsers.has_key (table):
+      parser = ConfigParser.RawConfigParser ()
+      parser.read (filename)
+      self.__parsers [table] = parser
+    return self.__parsers [table]
 
 
   # ---------------------------------------------------------------------------
@@ -180,7 +174,7 @@
 
   def _insert_ (self, table, newfields):
 
-    parser = self.__getParser (self.getFilename (table), table)
+    parser = self.__getParser (self._getFilename (table), table)
 
     section = newfields.get ('_section_name')
 
@@ -203,7 +197,7 @@
 
   def _update_ (self, table, oldfields, newfields):
 
-    parser = self.__getParser (self.getFilename (table), table)
+    parser = self.__getParser (self._getFilename (table), table)
 
     section = oldfields.get ('_section_name')
 
@@ -233,12 +227,26 @@
 
 
   # ---------------------------------------------------------------------------
+  # Set fields (used by _insert_ and _update_)
+  # ---------------------------------------------------------------------------
+
+  def __setFields (self, parser, section, fields):
+
+    for (field, value) in fields.items ():      
+      if field != '_section_name':
+        if value == '' or value is None:
+          parser.remove_option (section, field)
+        else:
+          parser.set (section, field, value)
+
+
+  # ---------------------------------------------------------------------------
   # Delete record
   # ---------------------------------------------------------------------------
 
   def _delete_ (self, table, oldfields):
 
-    parser = self.__getParser (self.getFilename (table), table)
+    parser = self.__getParser (self._getFilename (table), table)
 
     section = oldfields.get ('_section_name')
 
@@ -254,7 +262,7 @@
   def _commit_ (self): 
 
     for table in self.__dirty.keys ():
-      f = open (self.getFilename (table), "w+")
+      f = open (self._getFilename (table), "w+")
       (self.__parsers [table]).write (f)
       f.close ()
 





reply via email to

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