[Zope-Checkins] CVS: Zope3/lib/python/ZODB - FileStorage.py:1.93

Jeremy Hylton jeremy@zope.com
Mon, 17 Jun 2002 12:21:39 -0400


Update of /cvs-repository/Zope3/lib/python/ZODB
In directory cvs.zope.org:/tmp/cvs-serv19062

Modified Files:
	FileStorage.py 
Log Message:
Add DB() helper function to FileStorage, use:

    >>> from ZODB.FileStorage import DB
    >>> DB("data.fs")
    <ZODB.DB.DB instance at 0x4017cc2c>

Reorganize imports into groups.


=== Zope3/lib/python/ZODB/FileStorage.py 1.92 => 1.93 ===
 """
 
+from cPickle import Pickler, Unpickler, loads
 import struct, time, os, string, base64, sys
 from struct import pack, unpack
-import POSException
-from POSException import UndoError, POSKeyError
-from TimeStamp import TimeStamp
-from lock_file import lock_file
-from utils import t32, p64, U64, cp
+from types import StringType
+try:
+    from posix import fsync
+except:
+    fsync = None
+
 from zLOG import LOG, BLATHER, WARNING, ERROR, PANIC, register_subsystem
 register_subsystem('ZODB FS')
-import BaseStorage
-from cPickle import Pickler, Unpickler, loads
-import ConflictResolution
+
+import ZODB
+from ZODB import BaseStorage, ConflictResolution, POSException
+from ZODB.POSException import UndoError, POSKeyError
+from ZODB.TimeStamp import TimeStamp
+from ZODB.lock_file import lock_file
+from ZODB.utils import t32, p64, U64, cp
 
 try:
-    from fsIndex import fsIndex
+    from ZODB.fsIndex import fsIndex
 except ImportError:
     def fsIndex():
         return {}
 
-try: from posix import fsync
-except: fsync=None
-
-from types import StringType
-
 z64='\0'*8
 # constants to support various header sizes
 TRANS_HDR_LEN = 23
@@ -149,7 +150,7 @@
 
 def warn(message, *data):
     LOG('ZODB FS',WARNING, "%s  warn: %s\n"
-                               % (packed_version, (message % data)))
+        % (packed_version, (message % data)))
 
 def error(message, *data):
     LOG('ZODB FS',ERROR,"%s ERROR: %s\n" % (packed_version, (message % data)))
@@ -162,7 +163,8 @@
     LOG('ZODB FS',PANIC,"%s ERROR: %s\n" % (packed_version, message))
     raise CorruptedTransactionError, message
 
-class FileStorageError(POSException.StorageError): pass
+class FileStorageError(POSException.StorageError):
+    pass
 
 class FileStorageFormatError(FileStorageError):
     """Invalid file format
@@ -182,6 +184,17 @@
                             POSException.StorageSystemError):
     """File storage quota exceeded
     """
+
+def DB(file_name, create=0, read_only=0, stop=None, quota=None,
+       pool_size=7, cache_size=400, cache_deactivate_after=60,
+       version_pool_size=3, version_cache_size=100,
+       version_cache_deactivate_after=10):
+    """Create new object database using FileStorage file_name."""
+    fs = FileStorage(file_name, create, read_only, stop, quota)
+    db = ZODB.DB(fs, pool_size, cache_size, cache_deactivate_after,
+                 version_pool_size, version_cache_size,
+                 version_cache_deactivate_after)
+    return db
 
 packed_version='FS21'