@@ -116,6 +116,24 @@ Module functions and constants
116116------------------------------ 
117117
118118
119+ .. data :: apilevel 
120+ 
121+    String constant stating the supported DB-API level. Required by the DB-API.
122+    Hard-coded to ``"2.0" ``.
123+ 
124+ .. data :: paramstyle 
125+ 
126+    String constant stating the type of parameter marker formatting expected by
127+    the :mod: `sqlite3 ` module. Required by the DB-API. Hard-coded to
128+    ``"qmark" ``.
129+ 
130+    .. note ::
131+ 
132+       The :mod: `sqlite3 ` module supports both ``qmark `` and ``numeric `` DB-API
133+       parameter styles, because that is what the underlying SQLite library
134+       supports. However, the DB-API does not allow multiple values for
135+       the ``paramstyle `` attribute.
136+ 
119137.. data :: version 
120138
121139   The version number of this module, as a string. This is not the version of
@@ -138,6 +156,26 @@ Module functions and constants
138156   The version number of the run-time SQLite library, as a tuple of integers.
139157
140158
159+ .. data :: threadsafety 
160+ 
161+    Integer constant required by the DB-API, stating the level of thread safety
162+    the :mod: `sqlite3 ` module supports. Currently hard-coded to ``1 ``, meaning
163+    *"Threads may share the module, but not connections." * However, this may not
164+    always be true. You can check the underlying SQLite library's compile-time
165+    threaded mode using the following query::
166+ 
167+      import sqlite3 
168+      con = sqlite3.connect(":memory:") 
169+      con.execute(""" 
170+          select * from pragma_compile_options 
171+          where compile_options like 'THREADSAFE=%' 
172+      """).fetchall() 
173+ 
174+    Note that the `SQLITE_THREADSAFE levels 
175+    <https://sqlite.org/compile.html#threadsafe> `_ do not match the DB-API 2.0
176+    ``threadsafety `` levels.
177+ 
178+ 
141179.. data :: PARSE_DECLTYPES 
142180
143181   This constant is meant to be used with the *detect_types * parameter of the
@@ -688,6 +726,14 @@ Cursor Objects
688726      The cursor will be unusable from this point forward; a :exc: `ProgrammingError `
689727      exception will be raised if any operation is attempted with the cursor.
690728
729+    .. method :: setinputsizes(sizes) 
730+ 
731+       Required by the DB-API. Is a no-op in :mod: `sqlite3 `.
732+ 
733+    .. method :: setoutputsize(size [, column]) 
734+ 
735+       Required by the DB-API. Is a no-op in :mod: `sqlite3 `.
736+ 
691737   .. attribute :: rowcount 
692738
693739      Although the :class: `Cursor ` class of the :mod: `sqlite3 ` module implements this
0 commit comments