Branch data Line data Source code
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 : : 32 : : typedef 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 : : 74 : : extern pysqlite_state pysqlite_global_state; 75 : : 76 : : static inline pysqlite_state * 77 : 5198 : pysqlite_get_state(PyObject *module) 78 : : { 79 : 5198 : pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module); 80 : : assert(state != NULL); 81 : 5198 : return state; 82 : : } 83 : : 84 : : extern struct PyModuleDef _sqlite3module; 85 : : static inline pysqlite_state * 86 : 3685 : pysqlite_get_state_by_type(PyTypeObject *tp) 87 : : { 88 : 3685 : PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module); 89 : : assert(module != NULL); 90 : 3685 : return pysqlite_get_state(module); 91 : : } 92 : : 93 : : extern const char *pysqlite_error_name(int rc); 94 : : 95 : : #define PARSE_DECLTYPES 1 96 : : #define PARSE_COLNAMES 2 97 : : #endif