SP/web2py/gluon/packages/dal/pydal/drivers.py
Saturneic 064f602b1a Add.
2018-10-25 23:33:13 +08:00

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)