Mercurial > p > roundup > code
diff roundup/backends/__init__.py @ 1809:bd127cafe3a8
Simplify backend importing, by moving the imports into the backend modules.
| author | Johannes Gijsbers <jlgijsbers@users.sourceforge.net> |
|---|---|
| date | Sun, 14 Sep 2003 18:55:37 +0000 |
| parents | 7625bf9feec1 |
| children | f63aa57386b0 |
line wrap: on
line diff
--- a/roundup/backends/__init__.py Fri Sep 12 04:29:35 2003 +0000 +++ b/roundup/backends/__init__.py Sun Sep 14 18:55:37 2003 +0000 @@ -15,7 +15,7 @@ # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. # -# $Id: __init__.py,v 1.23 2003-04-24 06:55:24 richard Exp $ +# $Id: __init__.py,v 1.24 2003-09-14 18:55:37 jlgijsbers Exp $ ''' Container for the hyperdb storage backend implementations. @@ -25,66 +25,17 @@ __all__ = [] -try: - 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') - -try: - import MySQLdb -except ImportError, message: - if str(message) != 'No module named MySQLdb': raise -else: - import back_mysql - mysql = back_mysql - __all__.append('mysql') - -try: - import sqlite -except ImportError, message: - if str(message) != 'No module named sqlite': raise -else: - import back_sqlite - sqlite = back_sqlite - __all__.append('sqlite') - -try: - import bsddb -except ImportError, message: - if not str(message).startswith('No module named'): raise -else: - import back_bsddb - bsddb = back_bsddb - __all__.append('bsddb') - -try: - import bsddb3 -except ImportError, message: - if str(message) != 'No module named bsddb3': raise -else: - import back_bsddb3 - bsddb3 = back_bsddb3 - __all__.append('bsddb3') - -try: - import metakit -except ImportError, message: - if str(message) != 'No module named metakit': raise -else: - import back_metakit - metakit = back_metakit - __all__.append('metakit') +for backend in ['anydbm', ('mysql', 'MySQLdb'), 'bsddb', 'bsddb3', 'sqlite', + 'metakit']: + if len(backend) == 2: + backend, backend_module = backend + else: + backend_module = backend + try: + globals()[backend] = __import__('back_%s' % backend, globals()) + __all__.append(backend) + except ImportError, e: + if not str(e).startswith('No module named %s' % backend_module): + raise # vim: set filetype=python ts=4 sw=4 et si
