""" This module/script runs something with all the database drivers that can be found on the system """ # @@: Should this by in sqlapi? import sys import traceback drivers = [] modules = ['pysqlite2.dbapi2', 'sqlite', 'psycopg', 'pgdb', 'MySQLdb', 'kinterbasdb', 'sapdb.dbapi', 'adodbapi', 'Sybase', 'cx_Oracle', 'DCOracle2', ] def import_module(s): mod = __import__(s) parts = s.split('.') for part in parts[1:]: mod = getattr(mod, part) return mod for module_name in modules: try: mod = import_module(module_name) except ImportError: print 'Not found: %s' % module_name else: drivers.append((module_name, mod)) def print_eval(func): for module_name, mod in drivers: print '%s %s' % (module_name, '-'*(50-len(module_name))) try: func(module_name, mod) except: traceback.print_exc(file=sys.stdout) if __name__ == '__main__': expr = sys.argv[1] def func(name, mod): print ' ', expr, '=', exec 'print '+expr print_eval(func)