Package rdkit :: Package Dbase :: Module DbModule
[hide private]
[frames] | no frames]

Source Code for Module rdkit.Dbase.DbModule

 1  # $Id$ 
 2  # 
 3  # Copyright (C) 2003-2006 Rational Discovery LLC 
 4  # 
 5  #   @@ All Rights Reserved @@ 
 6  #  This file is part of the RDKit. 
 7  #  The contents are covered by the terms of the BSD license 
 8  #  which is included in the file license.txt, found at the root 
 9  #  of the RDKit source tree. 
10  # 
11  from rdkit import six 
12  from rdkit import RDConfig 
13   
14  if hasattr(RDConfig,"usePgSQL") and RDConfig.usePgSQL: 
15    from pyPgSQL import PgSQL 
16    # as of this writing (March 2004), this results in a speedup in 
17    # getting results back from the wrapper: 
18    PgSQL.fetchReturnsList=1 
19   
20    from pyPgSQL.PgSQL import * 
21    sqlTextTypes = [PG_CHAR,PG_BPCHAR,PG_TEXT,PG_VARCHAR,PG_NAME] 
22    sqlIntTypes = [PG_INT8,PG_INT2,PG_INT4] 
23    sqlFloatTypes = [PG_FLOAT4,PG_FLOAT8] 
24    sqlBinTypes = [PG_OID,PG_BLOB,PG_BYTEA] 
25    getTablesSql = """select tablename from pg_tables where schemaname='public'""" 
26    getTablesAndViewsSql = """SELECT c.relname as "Name" 
27    FROM pg_catalog.pg_class c 
28    LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner 
29    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace 
30    WHERE c.relkind IN ('r','v','S','') 
31    AND n.nspname NOT IN ('pg_catalog', 'pg_toast') 
32    AND pg_catalog.pg_table_is_visible(c.oid) 
33                                 
34    """ 
35    getDbSql = """ select datname from pg_database where datallowconn """ 
36    fileWildcard=None 
37    placeHolder='%s' 
38    binaryTypeName="bytea" 
39    binaryHolder = PgBytea 
40    RDTestDatabase="::RDTests" 
41  elif hasattr(RDConfig,"useSqlLite") and RDConfig.useSqlLite: 
42    try: 
43      import sqlite3 as sqlite 
44      #from sqlite3 import * 
45    except ImportError: 
46      from pysqlite2 import dbapi2 as sqlite 
47      #from pysqlite2 import * 
48    sqlTextTypes = [] 
49    sqlIntTypes = [] 
50    sqlFloatTypes = [] 
51    sqlBinTypes = [] 
52    getTablesSql = """select name from SQLite_Master where type='table'""" 
53    getTablesAndViewsSql = """select name from SQLite_Master where type in ('table','view')""" 
54    getDbSql = None 
55    dbFileWildcard='*.sqlt' 
56    placeHolder='?' 
57    binaryTypeName="blob" 
58    binaryHolder = memoryview if six.PY3 else buffer 
59   
60    connect = lambda x,*args:sqlite.connect(x) 
61  else: 
62    raise ImportError("Neither sqlite nor PgSQL support found.") 
63