index 3a1d7b36332d052040b89497d824e32c8dd3ede6..ee73759d26ceb41a003f90111d56fa3b65c2c4c9 100644 (file)
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: __init__.py,v 1.9 2001-12-12 02:30:51 richard Exp $
+# $Id: __init__.py,v 1.12 2002-05-22 00:32:33 richard Exp $
__all__ = []
try:
- import anydbm, dumbdbm
- # dumbdbm in python 2,2b2, 2.1.1 and earlier is seriously broken
- assert anydbm._defaultmod != dumbdbm
- del anydbm
- del dumbdbm
+ import sys, anydbm
+ if not hasattr(sys, 'version_info') or sys.version_info < (2,1,2):
+ import dumbdbm
+ # dumbdbm only works in python 2.1.2+
+ assert anydbm._defaultmod != dumbdbm
+ del anydbm
+ del dumbdbm
+except AssertionError:
+ print "WARNING: you should upgrade to python 2.1.3"
+except ImportError, message:
+ if str(message) != 'No module named anydbm': raise
+else:
import back_anydbm
anydbm = back_anydbm
__all__.append('anydbm')
-except AssertionError:
- del back_anydbm
-except ImportError:
- pass
try:
+ import bsddb
+except ImportError, message:
+ if str(message) != 'No module named bsddb': raise
+else:
import back_bsddb
bsddb = back_bsddb
__all__.append('bsddb')
-except ImportError:
- pass
try:
+ import bsddb3
+except ImportError, message:
+ if str(message) != 'No module named bsddb3': raise
+else:
import back_bsddb3
bsddb3 = back_bsddb3
__all__.append('bsddb3')
-except ImportError:
- pass
#
# $Log: not supported by cvs2svn $
+# Revision 1.11 2002/02/16 08:39:42 richard
+# . #516854 ] "My Issues" and redisplay
+#
+# Revision 1.10 2002/01/22 07:08:50 richard
+# I was certain I'd already done this (there's even a change note in
+# CHANGES)...
+#
+# Revision 1.9 2001/12/12 02:30:51 richard
+# I fixed the problems with people whose anydbm was using the dbm module at the
+# backend. It turns out the dbm module modifies the file name to append ".db"
+# and my check to determine if we're opening an existing or new db just
+# tested os.path.exists() on the filename. Well, no longer! We now perform a
+# much better check _and_ cope with the anydbm implementation module changing
+# too!
+# I also fixed the backends __init__ so only ImportError is squashed.
+#
# Revision 1.8 2001/12/10 22:20:01 richard
# Enabled transaction support in the bsddb backend. It uses the anydbm code
# where possible, only replacing methods where the db is opened (it uses the