-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathconstants.py
70 lines (57 loc) · 1.25 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
""" constants.py
REPOSITORY: https://github.com/DavidJLambert/Python-Universal-DB-Client
AUTHOR: David J. Lambert
VERSION: 0.7.6
DATE: Jul 9, 2020
"""
# SUPPORTED DATABASE TYPES.
ACCESS = 'access'
MYSQL = 'mysql'
ORACLE = 'oracle'
POSTGRESQL = 'postgresql'
SQLITE = 'sqlite'
SQLSERVER = 'sql server'
DB_TYPES = [
ACCESS,
MYSQL,
ORACLE,
POSTGRESQL,
SQLITE,
SQLSERVER]
# GROUPINGS OF DATABASE TYPES.
USES_CONNECTION_STRING = set(DB_TYPES) - {MYSQL}
FILE_DATABASES = {
ACCESS,
SQLITE}
# DATABASE LIBRARIES.
ORACLEDB = 'oracledb'
PSYCOPG2 = 'psycopg2'
PYMYSQL = 'pymysql'
PYODBC = 'pyodbc'
SQLITE3 = 'sqlite3'
LIB_NAME_FOR_DB = {
ACCESS: PYODBC,
MYSQL: PYMYSQL,
ORACLE: ORACLEDB,
POSTGRESQL: PSYCOPG2,
SQLITE: SQLITE3,
SQLSERVER: PYODBC}
# DATABASE CLIENT EXECUTABLES. THEIR DIRECTORIES MUST BE IN PATH.
DB_CLIENT_EXES = {
ACCESS: '',
MYSQL: 'mysqlsh',
ORACLE: 'sqlplus',
POSTGRESQL: 'psql',
SQLITE: 'sqlite3',
SQLSERVER: 'sqlcmd'}
# PARAMETERIZATION/BIND VARIABLE FORMAT USED HERE.
NAMED = 'named'
PYFORMAT = 'pyformat'
QMARK = 'qmark'
NOBINDVARS = 'nobindvars'
PARAMSTYLE_FOR_LIB = {
ORACLEDB: NAMED,
PSYCOPG2: PYFORMAT,
PYMYSQL: PYFORMAT,
PYODBC: QMARK,
SQLITE3: NAMED}