162 lines
3.0 KiB
Python
162 lines
3.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
from ._gae import gae
|
|
|
|
DRIVERS = {}
|
|
|
|
if gae is not None:
|
|
DRIVERS['google'] = gae
|
|
psycopg2_adapt = None
|
|
cx_Oracle = None
|
|
pyodbc = None
|
|
couchdb = None
|
|
is_jdbc = False
|
|
|
|
try:
|
|
from pysqlite2 import dbapi2 as sqlite2
|
|
DRIVERS['sqlite2'] = sqlite2
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
from sqlite3 import dbapi2 as sqlite3
|
|
DRIVERS['sqlite3'] = sqlite3
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import pymysql
|
|
DRIVERS['pymysql'] = pymysql
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import MySQLdb
|
|
DRIVERS['MySQLdb'] = MySQLdb
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import mysql.connector as mysqlconnector
|
|
DRIVERS["mysqlconnector"] = mysqlconnector
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import psycopg2
|
|
from psycopg2.extensions import adapt as psycopg2_adapt
|
|
DRIVERS['psycopg2'] = psycopg2
|
|
except ImportError:
|
|
psycopg2_adapt = None
|
|
|
|
try:
|
|
import pg8000
|
|
DRIVERS['pg8000'] = pg8000
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import cx_Oracle
|
|
DRIVERS['cx_Oracle'] = cx_Oracle
|
|
except ImportError:
|
|
cx_Oracle = None
|
|
|
|
try:
|
|
import pyodbc
|
|
DRIVERS['pyodbc'] = pyodbc
|
|
#DRIVERS.append('DB2(pyodbc)')
|
|
#DRIVERS.append('Teradata(pyodbc)')
|
|
#DRIVERS.append('Ingres(pyodbc)')
|
|
except ImportError:
|
|
try:
|
|
import pypyodbc as pyodbc
|
|
DRIVERS['pyodbc'] = pyodbc
|
|
except ImportError:
|
|
pyodbc = None
|
|
|
|
try:
|
|
import ibm_db_dbi
|
|
DRIVERS['ibm_db_dbi'] = ibm_db_dbi
|
|
except ImportError:
|
|
pass
|
|
try:
|
|
import Sybase
|
|
DRIVERS['Sybase'] = Sybase
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import kinterbasdb
|
|
DRIVERS['kinterbasdb'] = kinterbasdb
|
|
#DRIVERS.append('Firebird(kinterbasdb)')
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import fdb
|
|
DRIVERS['fdb'] = fdb
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import firebirdsql
|
|
DRIVERS['firebirdsql'] = firebirdsql
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import informixdb
|
|
#LOGGER.warning('Informix support is experimental')
|
|
DRIVERS['informixdb'] = informixdb
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import sapdb
|
|
DRIVERS['sapdb'] = sapdb
|
|
#LOGGER.warning('SAPDB support is experimental')
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
import cubriddb
|
|
DRIVERS['cubriddb'] = cubriddb
|
|
#LOGGER.warning('Cubrid support is experimental')
|
|
except ImportError:
|
|
pass
|
|
|
|
try:
|
|
from com.ziclix.python.sql import zxJDBC
|
|
import java.sql
|
|
# Try sqlite jdbc driver from http://www.zentus.com/sqlitejdbc/
|
|
from org.sqlite import JDBC # required by java.sql; ensure we have it
|
|
zxJDBC_sqlite = java.sql.DriverManager
|
|
DRIVERS['zxJDBC'] = zxJDBC
|
|
#DRIVERS.append('SQLite(zxJDBC)')
|
|
#LOGGER.warning('zxJDBC support is experimental')
|
|
is_jdbc = True
|
|
except ImportError:
|
|
is_jdbc = False
|
|
|
|
try:
|
|
import couchdb
|
|
DRIVERS['couchdb'] = couchdb
|
|
except ImportError:
|
|
couchdb = None
|
|
|
|
try:
|
|
import pymongo
|
|
DRIVERS['pymongo'] = pymongo
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
import imaplib
|
|
DRIVERS['imaplib'] = imaplib
|
|
except:
|
|
pass
|
|
|
|
|
|
# for backward compatibility?
|
|
def get_driver(name):
|
|
return DRIVERS.get(name)
|