1/* module.h - definitions for the module 2 * 3 * Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de> 4 * 5 * This file is part of pysqlite. 6 * 7 * This software is provided 'as-is', without any express or implied 8 * warranty. In no event will the authors be held liable for any damages 9 * arising from the use of this software. 10 * 11 * Permission is granted to anyone to use this software for any purpose, 12 * including commercial applications, and to alter it and redistribute it 13 * freely, subject to the following restrictions: 14 * 15 * 1. The origin of this software must not be misrepresented; you must not 16 * claim that you wrote the original software. If you use this software 17 * in a product, an acknowledgment in the product documentation would be 18 * appreciated but is not required. 19 * 2. Altered source versions must be plainly marked as such, and must not be 20 * misrepresented as being the original software. 21 * 3. This notice may not be removed or altered from any source distribution. 22 */ 23 24#ifndef PYSQLITE_MODULE_H 25#define PYSQLITE_MODULE_H 26#define PY_SSIZE_T_CLEAN 27#include "Python.h" 28 29#define PYSQLITE_VERSION "2.6.0" 30#define MODULE_NAME "sqlite3" 31 32typedef struct { 33 PyObject *DataError; 34 PyObject *DatabaseError; 35 PyObject *Error; 36 PyObject *IntegrityError; 37 PyObject *InterfaceError; 38 PyObject *InternalError; 39 PyObject *NotSupportedError; 40 PyObject *OperationalError; 41 PyObject *ProgrammingError; 42 PyObject *Warning; 43 44 45 /* A dictionary, mapping column types (INTEGER, VARCHAR, etc.) to converter 46 * functions, that convert the SQL value to the appropriate Python value. 47 * The key is uppercase. 48 */ 49 PyObject *converters; 50 51 PyObject *lru_cache; 52 PyObject *psyco_adapters; // The adapters registry 53 int BaseTypeAdapted; 54 int enable_callback_tracebacks; 55 56 PyTypeObject *BlobType; 57 PyTypeObject *ConnectionType; 58 PyTypeObject *CursorType; 59 PyTypeObject *PrepareProtocolType; 60 PyTypeObject *RowType; 61 PyTypeObject *StatementType; 62 63 /* Pointers to interned strings */ 64 PyObject *str___adapt__; 65 PyObject *str___conform__; 66 PyObject *str_executescript; 67 PyObject *str_finalize; 68 PyObject *str_inverse; 69 PyObject *str_step; 70 PyObject *str_upper; 71 PyObject *str_value; 72} pysqlite_state; 73 74extern pysqlite_state pysqlite_global_state; 75 76static inline pysqlite_state * 77pysqlite_get_state(PyObject *module) 78{ 79 pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module); 80 assert(state != NULL); 81 return state; 82} 83 84extern struct PyModuleDef _sqlite3module; 85static inline pysqlite_state * 86pysqlite_get_state_by_type(PyTypeObject *tp) 87{ 88 PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module); 89 assert(module != NULL); 90 return pysqlite_get_state(module); 91} 92 93extern const char *pysqlite_error_name(int rc); 94 95#define PARSE_DECLTYPES 1 96#define PARSE_COLNAMES 2 97#endif 98