[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'