Update of /cvsroot/webware/Webware/MiscUtils
In directory usw-pr-cvs1:/tmp/cvs-serv9836
Modified Files:
DataTable.py
Log Message:
- added pickle caching
- see docstring of PickleCache.py to find out what that is
- the top diff of this checkin contains new docs for DataTable on how
to disable this if you don't want it.
Index: DataTable.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiscUtils/DataTable.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** DataTable.py 20 Jun 2002 17:47:56 -0000 1.20
--- DataTable.py 11 Nov 2002 02:17:02 -0000 1.21
***************
*** 147,150 ****
--- 147,162 ----
+ CACHING
+
+ DataTable uses "pickle caching" so that it can read .csv files faster
+ on subsequent loads. You can disable this across the board with:
+ from MiscUtils.DataTable import DataTable
+ DataTable.usePickleCache = 0
+
+ Or per instance by passing "usePickleCache=0" to the constructor.
+
+ See the docstring of PickleCache.py for more information.
+
+
MORE DOCS
***************
*** 285,293 ****
class DataTable:
"""
"""
## Init ##
! def __init__(self, filenameOrHeadings=None, delimiter=',', allowComments=1, stripWhite=1, defaultType='string'):
if not _types.has_key(defaultType):
raise DataTableError, 'Unknown type for default type: %s' % repr(defaultType)
--- 297,313 ----
class DataTable:
"""
+ See the doc string for this module.
"""
+ usePickleCache = 1
+
+
## Init ##
! def __init__(self, filenameOrHeadings=None, delimiter=',', allowComments=1, stripWhite=1, defaultType='string', usePickleCache=None):
! if usePickleCache is None:
! self.usePickleCache = self.usePickleCache # grab the class-level attr
! else:
! self.usePickleCache = usePickleCache
if not _types.has_key(defaultType):
raise DataTableError, 'Unknown type for default type: %s' % repr(defaultType)
***************
*** 307,313 ****
def readFileNamed(self, filename, delimiter=',', allowComments=1, stripWhite=1):
self._filename = filename
! file = open(self._filename, 'r')
! self.readFile(file, delimiter, allowComments, stripWhite)
! file.close()
return self
--- 327,342 ----
def readFileNamed(self, filename, delimiter=',', allowComments=1, stripWhite=1):
self._filename = filename
! data = None
! if self.usePickleCache:
! from PickleCache import readPickleCache, writePickleCache
! data = readPickleCache(filename, pickleVersion=1, source='MiscUtils.DataTable')
! if data is None:
! file = open(self._filename, 'r')
! self.readFile(file, delimiter, allowComments, stripWhite)
! file.close()
! if self.usePickleCache:
! writePickleCache(self, filename, pickleVersion=1, source='MiscUtils.DataTable')
! else:
! self.__dict__ = data.__dict__
return self
|