gh-95273: Reorganize sqlite3 doc module level funcs and vars (#95626)
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com> Co-authored-by: CAM Gerlach <CAM.Gerlach@Gerlach.CAM>
This commit is contained in:
parent
62f06508e7
commit
41c939cb35
@ -132,142 +132,18 @@ You've now created an SQLite database using the :mod:`!sqlite3` module.
|
|||||||
Reference
|
Reference
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
.. We keep the old sqlite3-module-contents ref to prevent breaking links.
|
||||||
.. _sqlite3-module-contents:
|
.. _sqlite3-module-contents:
|
||||||
|
|
||||||
Module functions and constants
|
.. _sqlite3-module-functions:
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
|
Module functions
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
.. data:: apilevel
|
.. function:: connect(database, timeout=5.0, detect_types=0, \
|
||||||
|
isolation_level="DEFERRED", check_same_thread=True, \
|
||||||
String constant stating the supported DB-API level. Required by the DB-API.
|
factory=sqlite3.Connection, cached_statements=128, \
|
||||||
Hard-coded to ``"2.0"``.
|
uri=False)
|
||||||
|
|
||||||
.. data:: paramstyle
|
|
||||||
|
|
||||||
String constant stating the type of parameter marker formatting expected by
|
|
||||||
the :mod:`!sqlite3` module. Required by the DB-API. Hard-coded to
|
|
||||||
``"qmark"``.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The :mod:`!sqlite3` module supports both ``qmark`` and ``numeric`` DB-API
|
|
||||||
parameter styles, because that is what the underlying SQLite library
|
|
||||||
supports. However, the DB-API does not allow multiple values for
|
|
||||||
the ``paramstyle`` attribute.
|
|
||||||
|
|
||||||
.. data:: version
|
|
||||||
|
|
||||||
Version number of this module as a :class:`string <str>`.
|
|
||||||
This is not the version of the SQLite library.
|
|
||||||
|
|
||||||
.. deprecated-removed:: 3.12 3.14
|
|
||||||
This constant used to reflect the version number of the ``pysqlite``
|
|
||||||
package, a third-party library which used to upstream changes to
|
|
||||||
:mod:`!sqlite3`. Today, it carries no meaning or practical value.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: version_info
|
|
||||||
|
|
||||||
Version number of this module as a :class:`tuple` of :class:`integers <int>`.
|
|
||||||
This is not the version of the SQLite library.
|
|
||||||
|
|
||||||
.. deprecated-removed:: 3.12 3.14
|
|
||||||
This constant used to reflect the version number of the ``pysqlite``
|
|
||||||
package, a third-party library which used to upstream changes to
|
|
||||||
:mod:`!sqlite3`. Today, it carries no meaning or practical value.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: sqlite_version
|
|
||||||
|
|
||||||
Version number of the runtime SQLite library as a :class:`string <str>`.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: sqlite_version_info
|
|
||||||
|
|
||||||
Version number of the runtime SQLite library as a :class:`tuple` of
|
|
||||||
:class:`integers <int>`.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: threadsafety
|
|
||||||
|
|
||||||
Integer constant required by the DB-API 2.0, stating the level of thread
|
|
||||||
safety the :mod:`!sqlite3` module supports. This attribute is set based on
|
|
||||||
the default `threading mode <https://sqlite.org/threadsafe.html>`_ the
|
|
||||||
underlying SQLite library is compiled with. The SQLite threading modes are:
|
|
||||||
|
|
||||||
1. **Single-thread**: In this mode, all mutexes are disabled and SQLite is
|
|
||||||
unsafe to use in more than a single thread at once.
|
|
||||||
2. **Multi-thread**: In this mode, SQLite can be safely used by multiple
|
|
||||||
threads provided that no single database connection is used
|
|
||||||
simultaneously in two or more threads.
|
|
||||||
3. **Serialized**: In serialized mode, SQLite can be safely used by
|
|
||||||
multiple threads with no restriction.
|
|
||||||
|
|
||||||
The mappings from SQLite threading modes to DB-API 2.0 threadsafety levels
|
|
||||||
are as follows:
|
|
||||||
|
|
||||||
+------------------+-----------------+----------------------+-------------------------------+
|
|
||||||
| SQLite threading | `threadsafety`_ | `SQLITE_THREADSAFE`_ | DB-API 2.0 meaning |
|
|
||||||
| mode | | | |
|
|
||||||
+==================+=================+======================+===============================+
|
|
||||||
| single-thread | 0 | 0 | Threads may not share the |
|
|
||||||
| | | | module |
|
|
||||||
+------------------+-----------------+----------------------+-------------------------------+
|
|
||||||
| multi-thread | 1 | 2 | Threads may share the module, |
|
|
||||||
| | | | but not connections |
|
|
||||||
+------------------+-----------------+----------------------+-------------------------------+
|
|
||||||
| serialized | 3 | 1 | Threads may share the module, |
|
|
||||||
| | | | connections and cursors |
|
|
||||||
+------------------+-----------------+----------------------+-------------------------------+
|
|
||||||
|
|
||||||
.. _threadsafety: https://peps.python.org/pep-0249/#threadsafety
|
|
||||||
.. _SQLITE_THREADSAFE: https://sqlite.org/compile.html#threadsafe
|
|
||||||
|
|
||||||
.. versionchanged:: 3.11
|
|
||||||
Set *threadsafety* dynamically instead of hard-coding it to ``1``.
|
|
||||||
|
|
||||||
.. data:: PARSE_DECLTYPES
|
|
||||||
|
|
||||||
Pass this flag value to the *detect_types* parameter of
|
|
||||||
:func:`connect` to look up a converter function using
|
|
||||||
the declared types for each column.
|
|
||||||
The types are declared when the database table is created.
|
|
||||||
:mod:`!sqlite3` will look up a converter function using the first word of the
|
|
||||||
declared type as the converter dictionary key.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: sql
|
|
||||||
|
|
||||||
CREATE TABLE test(
|
|
||||||
i integer primary key, ! will look up a converter named "integer"
|
|
||||||
p point, ! will look up a converter named "point"
|
|
||||||
n number(10) ! will look up a converter named "number"
|
|
||||||
)
|
|
||||||
|
|
||||||
This flag may be combined with :const:`PARSE_COLNAMES` using the ``|``
|
|
||||||
(bitwise or) operator.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: PARSE_COLNAMES
|
|
||||||
|
|
||||||
Pass this flag value to the *detect_types* parameter of
|
|
||||||
:func:`connect` to look up a converter function by
|
|
||||||
using the type name, parsed from the query column name,
|
|
||||||
as the converter dictionary key.
|
|
||||||
The type name must be wrapped in square brackets (``[]``).
|
|
||||||
|
|
||||||
.. code-block:: sql
|
|
||||||
|
|
||||||
SELECT p as "p [point]" FROM test; ! will look up converter "point"
|
|
||||||
|
|
||||||
This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|``
|
|
||||||
(bitwise or) operator.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. function:: connect(database, timeout=5.0, detect_types=0, isolation_level="DEFERRED", check_same_thread=True, factory=sqlite3.Connection, cached_statements=128, uri=False)
|
|
||||||
|
|
||||||
Open a connection to an SQLite database.
|
Open a connection to an SQLite database.
|
||||||
|
|
||||||
@ -344,30 +220,6 @@ Module functions and constants
|
|||||||
.. versionadded:: 3.10
|
.. versionadded:: 3.10
|
||||||
The ``sqlite3.connect/handle`` auditing event.
|
The ``sqlite3.connect/handle`` auditing event.
|
||||||
|
|
||||||
|
|
||||||
.. function:: register_converter(typename, converter, /)
|
|
||||||
|
|
||||||
Register the *converter* callable to convert SQLite objects of type
|
|
||||||
*typename* into a Python object of a specific type.
|
|
||||||
The converter is invoked for all SQLite values of type *typename*;
|
|
||||||
it is passed a :class:`bytes` object and should return an object of the
|
|
||||||
desired Python type.
|
|
||||||
Consult the parameter *detect_types* of
|
|
||||||
:func:`connect` for information regarding how type detection works.
|
|
||||||
|
|
||||||
Note: *typename* and the name of the type in your query are matched
|
|
||||||
case-insensitively.
|
|
||||||
|
|
||||||
|
|
||||||
.. function:: register_adapter(type, adapter, /)
|
|
||||||
|
|
||||||
Register an *adapter* callable to adapt the Python type *type* into an
|
|
||||||
SQLite type.
|
|
||||||
The adapter is called with a Python object of type *type* as its sole
|
|
||||||
argument, and must return a value of a
|
|
||||||
:ref:`type that SQLite natively understands <sqlite3-types>`.
|
|
||||||
|
|
||||||
|
|
||||||
.. function:: complete_statement(statement)
|
.. function:: complete_statement(statement)
|
||||||
|
|
||||||
Returns ``True`` if the string *statement* contains one or more complete SQL
|
Returns ``True`` if the string *statement* contains one or more complete SQL
|
||||||
@ -377,10 +229,8 @@ Module functions and constants
|
|||||||
|
|
||||||
This can be used to build a shell for SQLite, as in the following example:
|
This can be used to build a shell for SQLite, as in the following example:
|
||||||
|
|
||||||
|
|
||||||
.. literalinclude:: ../includes/sqlite3/complete_statement.py
|
.. literalinclude:: ../includes/sqlite3/complete_statement.py
|
||||||
|
|
||||||
|
|
||||||
.. function:: enable_callback_tracebacks(flag, /)
|
.. function:: enable_callback_tracebacks(flag, /)
|
||||||
|
|
||||||
Enable or disable callback tracebacks.
|
Enable or disable callback tracebacks.
|
||||||
@ -408,6 +258,154 @@ Module functions and constants
|
|||||||
UnraisableHookArgs(exc_type=<class 'ZeroDivisionError'>, exc_value=ZeroDivisionError('division by zero'), exc_traceback=<traceback object at 0x10b559900>, err_msg=None, object=<function <lambda> at 0x10b4e3ee0>)
|
UnraisableHookArgs(exc_type=<class 'ZeroDivisionError'>, exc_value=ZeroDivisionError('division by zero'), exc_traceback=<traceback object at 0x10b559900>, err_msg=None, object=<function <lambda> at 0x10b4e3ee0>)
|
||||||
<sqlite3.Cursor object at 0x10b1fe840>
|
<sqlite3.Cursor object at 0x10b1fe840>
|
||||||
|
|
||||||
|
.. function:: register_adapter(type, adapter, /)
|
||||||
|
|
||||||
|
Register an *adapter* callable to adapt the Python type *type* into an
|
||||||
|
SQLite type.
|
||||||
|
The adapter is called with a Python object of type *type* as its sole
|
||||||
|
argument, and must return a value of a
|
||||||
|
:ref:`type that SQLite natively understands <sqlite3-types>`.
|
||||||
|
|
||||||
|
.. function:: register_converter(typename, converter, /)
|
||||||
|
|
||||||
|
Register the *converter* callable to convert SQLite objects of type
|
||||||
|
*typename* into a Python object of a specific type.
|
||||||
|
The converter is invoked for all SQLite values of type *typename*;
|
||||||
|
it is passed a :class:`bytes` object and should return an object of the
|
||||||
|
desired Python type.
|
||||||
|
Consult the parameter *detect_types* of
|
||||||
|
:func:`connect` for information regarding how type detection works.
|
||||||
|
|
||||||
|
Note: *typename* and the name of the type in your query are matched
|
||||||
|
case-insensitively.
|
||||||
|
|
||||||
|
|
||||||
|
.. _sqlite3-module-constants:
|
||||||
|
|
||||||
|
Module constants
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. data:: PARSE_COLNAMES
|
||||||
|
|
||||||
|
Pass this flag value to the *detect_types* parameter of
|
||||||
|
:func:`connect` to look up a converter function by
|
||||||
|
using the type name, parsed from the query column name,
|
||||||
|
as the converter dictionary key.
|
||||||
|
The type name must be wrapped in square brackets (``[]``).
|
||||||
|
|
||||||
|
.. code-block:: sql
|
||||||
|
|
||||||
|
SELECT p as "p [point]" FROM test; ! will look up converter "point"
|
||||||
|
|
||||||
|
This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|``
|
||||||
|
(bitwise or) operator.
|
||||||
|
|
||||||
|
.. data:: PARSE_DECLTYPES
|
||||||
|
|
||||||
|
Pass this flag value to the *detect_types* parameter of
|
||||||
|
:func:`connect` to look up a converter function using
|
||||||
|
the declared types for each column.
|
||||||
|
The types are declared when the database table is created.
|
||||||
|
:mod:`!sqlite3` will look up a converter function using the first word of the
|
||||||
|
declared type as the converter dictionary key.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
.. code-block:: sql
|
||||||
|
|
||||||
|
CREATE TABLE test(
|
||||||
|
i integer primary key, ! will look up a converter named "integer"
|
||||||
|
p point, ! will look up a converter named "point"
|
||||||
|
n number(10) ! will look up a converter named "number"
|
||||||
|
)
|
||||||
|
|
||||||
|
This flag may be combined with :const:`PARSE_COLNAMES` using the ``|``
|
||||||
|
(bitwise or) operator.
|
||||||
|
|
||||||
|
.. data:: apilevel
|
||||||
|
|
||||||
|
String constant stating the supported DB-API level. Required by the DB-API.
|
||||||
|
Hard-coded to ``"2.0"``.
|
||||||
|
|
||||||
|
.. data:: paramstyle
|
||||||
|
|
||||||
|
String constant stating the type of parameter marker formatting expected by
|
||||||
|
the :mod:`!sqlite3` module. Required by the DB-API. Hard-coded to
|
||||||
|
``"qmark"``.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The :mod:`!sqlite3` module supports both ``qmark`` and ``numeric`` DB-API
|
||||||
|
parameter styles, because that is what the underlying SQLite library
|
||||||
|
supports. However, the DB-API does not allow multiple values for
|
||||||
|
the ``paramstyle`` attribute.
|
||||||
|
|
||||||
|
.. data:: sqlite_version
|
||||||
|
|
||||||
|
Version number of the runtime SQLite library as a :class:`string <str>`.
|
||||||
|
|
||||||
|
.. data:: sqlite_version_info
|
||||||
|
|
||||||
|
Version number of the runtime SQLite library as a :class:`tuple` of
|
||||||
|
:class:`integers <int>`.
|
||||||
|
|
||||||
|
.. data:: threadsafety
|
||||||
|
|
||||||
|
Integer constant required by the DB-API 2.0, stating the level of thread
|
||||||
|
safety the :mod:`!sqlite3` module supports. This attribute is set based on
|
||||||
|
the default `threading mode <https://sqlite.org/threadsafe.html>`_ the
|
||||||
|
underlying SQLite library is compiled with. The SQLite threading modes are:
|
||||||
|
|
||||||
|
1. **Single-thread**: In this mode, all mutexes are disabled and SQLite is
|
||||||
|
unsafe to use in more than a single thread at once.
|
||||||
|
2. **Multi-thread**: In this mode, SQLite can be safely used by multiple
|
||||||
|
threads provided that no single database connection is used
|
||||||
|
simultaneously in two or more threads.
|
||||||
|
3. **Serialized**: In serialized mode, SQLite can be safely used by
|
||||||
|
multiple threads with no restriction.
|
||||||
|
|
||||||
|
The mappings from SQLite threading modes to DB-API 2.0 threadsafety levels
|
||||||
|
are as follows:
|
||||||
|
|
||||||
|
+------------------+-----------------+----------------------+-------------------------------+
|
||||||
|
| SQLite threading | `threadsafety`_ | `SQLITE_THREADSAFE`_ | DB-API 2.0 meaning |
|
||||||
|
| mode | | | |
|
||||||
|
+==================+=================+======================+===============================+
|
||||||
|
| single-thread | 0 | 0 | Threads may not share the |
|
||||||
|
| | | | module |
|
||||||
|
+------------------+-----------------+----------------------+-------------------------------+
|
||||||
|
| multi-thread | 1 | 2 | Threads may share the module, |
|
||||||
|
| | | | but not connections |
|
||||||
|
+------------------+-----------------+----------------------+-------------------------------+
|
||||||
|
| serialized | 3 | 1 | Threads may share the module, |
|
||||||
|
| | | | connections and cursors |
|
||||||
|
+------------------+-----------------+----------------------+-------------------------------+
|
||||||
|
|
||||||
|
.. _threadsafety: https://peps.python.org/pep-0249/#threadsafety
|
||||||
|
.. _SQLITE_THREADSAFE: https://sqlite.org/compile.html#threadsafe
|
||||||
|
|
||||||
|
.. versionchanged:: 3.11
|
||||||
|
Set *threadsafety* dynamically instead of hard-coding it to ``1``.
|
||||||
|
|
||||||
|
.. data:: version
|
||||||
|
|
||||||
|
Version number of this module as a :class:`string <str>`.
|
||||||
|
This is not the version of the SQLite library.
|
||||||
|
|
||||||
|
.. deprecated-removed:: 3.12 3.14
|
||||||
|
This constant used to reflect the version number of the ``pysqlite``
|
||||||
|
package, a third-party library which used to upstream changes to
|
||||||
|
:mod:`!sqlite3`. Today, it carries no meaning or practical value.
|
||||||
|
|
||||||
|
.. data:: version_info
|
||||||
|
|
||||||
|
Version number of this module as a :class:`tuple` of :class:`integers <int>`.
|
||||||
|
This is not the version of the SQLite library.
|
||||||
|
|
||||||
|
.. deprecated-removed:: 3.12 3.14
|
||||||
|
This constant used to reflect the version number of the ``pysqlite``
|
||||||
|
package, a third-party library which used to upstream changes to
|
||||||
|
:mod:`!sqlite3`. Today, it carries no meaning or practical value.
|
||||||
|
|
||||||
|
|
||||||
.. _sqlite3-connection-objects:
|
.. _sqlite3-connection-objects:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user