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