apsw-sqlite3mc 3.53.2.0__tar.gz → 3.53.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/PKG-INFO +2 -2
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/README.rst +1 -1
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/__init__.pyi +139 -15
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/sqlite_extra.json +0 -4
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/__main__.py +160 -56
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/aiotest.py +11 -3
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/async_meta.py +13 -6
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/extratest.py +3 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/ftstests.py +8 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/mctests.py +6 -1
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw_sqlite3mc.egg-info/PKG-INFO +2 -2
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/checksums +5 -1
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/setup.py +7 -3
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/sqlite3/sqlite3.c +1524 -353
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/apsw.c +96 -21
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/apsw.docstrings +58 -6
- apsw_sqlite3mc-3.53.4.0/src/apswversion.h +1 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/blob.c +255 -37
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/connection.c +52 -13
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/fts.c +10 -1
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/sqlite_debug.h +20 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/stringconstants.c +16 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/unicode.c +1 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/vfs.c +5 -1
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/tools/vend.py +0 -4
- apsw_sqlite3mc-3.53.2.0/src/apswversion.h +0 -1
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/LICENSE +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/MANIFEST.in +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/__main__.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/aio.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/bestpractice.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/ext.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/fts5.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/fts5aux.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/fts5query.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/fts_test_strings +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/mcall.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/py.typed +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/shell.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/speedtest.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/sqlite_extra.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/sqlite_extra_binaries/README.md +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/carray.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/fork_checker.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/jsonb.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/sessiontests.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/tests/shelltest.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/trace.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw/unicode.py +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw_sqlite3mc.egg-info/SOURCES.txt +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw_sqlite3mc.egg-info/dependency_links.txt +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw_sqlite3mc.egg-info/entry_points.txt +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/apsw_sqlite3mc.egg-info/top_level.txt +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/pyproject.toml +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/setup.apsw +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/setup.cfg +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/_unicodedb.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/argparse.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/async.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/backup.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/carray.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/constants.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/cursor.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/exceptions.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/faultinject.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/faultinject.h +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/fileio_win32.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/jsonb.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/pyutil.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/session.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/statementcache.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/testextension.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/traceback.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/util.c +0 -0
- {apsw_sqlite3mc-3.53.2.0 → apsw_sqlite3mc-3.53.4.0}/src/vtable.c +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: apsw_sqlite3mc
|
|
3
|
-
Version: 3.53.
|
|
3
|
+
Version: 3.53.4.0
|
|
4
4
|
Summary: SQLite3 Multiple Ciphers combined with Another Python SQLite Wrapper
|
|
5
5
|
Home-page: https://github.com/utelle/apsw-sqlite3mc
|
|
6
6
|
Author: Ulrich Telle
|
|
@@ -90,7 +90,7 @@ Setting the key on a new database is the only change needed to your code.
|
|
|
90
90
|
|
|
91
91
|
>>> import apsw
|
|
92
92
|
>>> print(apsw.mc_version)
|
|
93
|
-
SQLite3 Multiple Ciphers 2.
|
|
93
|
+
SQLite3 Multiple Ciphers 2.4.0
|
|
94
94
|
>>> con = apsw.Connection("database.sqlite3")
|
|
95
95
|
>>> con.pragma("key", "my secret passphrase")
|
|
96
96
|
ok
|
|
@@ -59,7 +59,7 @@ Setting the key on a new database is the only change needed to your code.
|
|
|
59
59
|
|
|
60
60
|
>>> import apsw
|
|
61
61
|
>>> print(apsw.mc_version)
|
|
62
|
-
SQLite3 Multiple Ciphers 2.
|
|
62
|
+
SQLite3 Multiple Ciphers 2.4.0
|
|
63
63
|
>>> con = apsw.Connection("database.sqlite3")
|
|
64
64
|
>>> con.pragma("key", "my secret passphrase")
|
|
65
65
|
ok
|
|
@@ -856,8 +856,8 @@ class Backup:
|
|
|
856
856
|
@final
|
|
857
857
|
class Blob:
|
|
858
858
|
"""This object is created by :meth:`Connection.blob_open` and provides
|
|
859
|
-
access to a blob in the database. It behaves like a Python
|
|
860
|
-
It wraps a `sqlite3_blob
|
|
859
|
+
access to a blob in the database. It behaves like a Python
|
|
860
|
+
:class:`file <io.RawIOBase>` in binary mode. It wraps a `sqlite3_blob
|
|
861
861
|
<https://sqlite.org/c3ref/blob.html>`_.
|
|
862
862
|
|
|
863
863
|
.. note::
|
|
@@ -893,6 +893,9 @@ class Blob:
|
|
|
893
893
|
Calls: `sqlite3_blob_close <https://sqlite.org/c3ref/blob_close.html>`__"""
|
|
894
894
|
...
|
|
895
895
|
|
|
896
|
+
closed: bool
|
|
897
|
+
"""Indicates if the blob has been closed."""
|
|
898
|
+
|
|
896
899
|
def __enter__(self) -> Blob:
|
|
897
900
|
"""You can use a blob as a `context manager
|
|
898
901
|
<https://docs.python.org/3/reference/datamodel.html#with-statement-context-managers>`_
|
|
@@ -913,6 +916,20 @@ class Blob:
|
|
|
913
916
|
*with* block is raised after closing the blob."""
|
|
914
917
|
...
|
|
915
918
|
|
|
919
|
+
def fileno(self) -> int:
|
|
920
|
+
"""Always raises :exc:`OSError` because there is no
|
|
921
|
+
underlying file descriptor."""
|
|
922
|
+
...
|
|
923
|
+
|
|
924
|
+
def flush(self) -> None:
|
|
925
|
+
"""Does nothing. There is no intermediate buffer, and SQLite's overall
|
|
926
|
+
transaction/savepoint handling deals with database commits."""
|
|
927
|
+
...
|
|
928
|
+
|
|
929
|
+
def isatty(self) -> False:
|
|
930
|
+
"""Blobs are never interactive."""
|
|
931
|
+
...
|
|
932
|
+
|
|
916
933
|
def length(self) -> int:
|
|
917
934
|
"""Returns the size of the blob in bytes.
|
|
918
935
|
|
|
@@ -951,6 +968,24 @@ class Blob:
|
|
|
951
968
|
|
|
952
969
|
readinto = read_into ## OLD-NAME
|
|
953
970
|
|
|
971
|
+
def readable(self) -> True:
|
|
972
|
+
"""You can always read from a blob"""
|
|
973
|
+
...
|
|
974
|
+
|
|
975
|
+
def readall(self) -> bytes:
|
|
976
|
+
"""Read all data until the end of the blob"""
|
|
977
|
+
...
|
|
978
|
+
|
|
979
|
+
def readline(self, size: int = -1) -> bytes:
|
|
980
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
981
|
+
You can wrap with :class:`io.BufferedReader`."""
|
|
982
|
+
...
|
|
983
|
+
|
|
984
|
+
def readlines(self, hint: int = -1) -> list[bytes]:
|
|
985
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
986
|
+
You can wrap with :class:`io.BufferedReader`."""
|
|
987
|
+
...
|
|
988
|
+
|
|
954
989
|
def reopen(self, rowid: int) -> None:
|
|
955
990
|
"""Change this blob object to point to a different row. It can be
|
|
956
991
|
faster than closing an existing blob an opening a new one.
|
|
@@ -968,13 +1003,28 @@ class Blob:
|
|
|
968
1003
|
:raises ValueError: If the resulting offset is before the beginning (less than zero) or beyond the end of the blob."""
|
|
969
1004
|
...
|
|
970
1005
|
|
|
1006
|
+
def seekable(self) -> True:
|
|
1007
|
+
"""You can always seek in a blob"""
|
|
1008
|
+
...
|
|
1009
|
+
|
|
971
1010
|
def tell(self) -> int:
|
|
972
1011
|
"""Returns the current offset."""
|
|
973
1012
|
...
|
|
974
1013
|
|
|
975
|
-
def
|
|
1014
|
+
def truncate(self, size = None) -> None:
|
|
1015
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
1016
|
+
You cannot change the size of a blob."""
|
|
1017
|
+
...
|
|
1018
|
+
|
|
1019
|
+
def writable(self) -> bool:
|
|
1020
|
+
"""Returns True if the blob was open for writing, else False."""
|
|
1021
|
+
...
|
|
1022
|
+
|
|
1023
|
+
def write(self, data: Buffer) -> int:
|
|
976
1024
|
"""Writes the data to the blob.
|
|
977
1025
|
|
|
1026
|
+
Returns the number of bytes written, which will be all of them.
|
|
1027
|
+
|
|
978
1028
|
:param data: Buffer to write
|
|
979
1029
|
|
|
980
1030
|
:raises TypeError: Wrong data type
|
|
@@ -987,6 +1037,11 @@ class Blob:
|
|
|
987
1037
|
Calls: `sqlite3_blob_write <https://sqlite.org/c3ref/blob_write.html>`__"""
|
|
988
1038
|
...
|
|
989
1039
|
|
|
1040
|
+
def writelines(self, lines) -> None:
|
|
1041
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
1042
|
+
You can wrap with :class:`io.BufferedWriter`."""
|
|
1043
|
+
...
|
|
1044
|
+
|
|
990
1045
|
@final
|
|
991
1046
|
class ChangesetBuilder:
|
|
992
1047
|
"""This object wraps a `sqlite3_changegroup <https://sqlite.org/session/changegroup.html>`__
|
|
@@ -1748,7 +1803,9 @@ class Connection:
|
|
|
1748
1803
|
"""If *keep* is *None* then all registered virtual tables are dropped.
|
|
1749
1804
|
|
|
1750
1805
|
Otherwise *keep* is a sequence of strings, naming the virtual tables that
|
|
1751
|
-
are kept, dropping all others.
|
|
1806
|
+
are kept, dropping all others.
|
|
1807
|
+
|
|
1808
|
+
Calls: `sqlite3_drop_modules <https://sqlite.org/c3ref/drop_modules.html>`__"""
|
|
1752
1809
|
...
|
|
1753
1810
|
|
|
1754
1811
|
def enable_load_extension(self, enable: bool) -> None:
|
|
@@ -1926,7 +1983,9 @@ class Connection:
|
|
|
1926
1983
|
...
|
|
1927
1984
|
|
|
1928
1985
|
def get_autocommit(self) -> bool:
|
|
1929
|
-
"""Returns if the Connection is in auto commit mode (ie not in a
|
|
1986
|
+
"""Returns if the Connection is in auto commit mode (ie not in a
|
|
1987
|
+
transaction). It is recommended to use :meth:`txn_state` instead
|
|
1988
|
+
which is more reliable.
|
|
1930
1989
|
|
|
1931
1990
|
Calls: `sqlite3_get_autocommit <https://sqlite.org/c3ref/get_autocommit.html>`__"""
|
|
1932
1991
|
...
|
|
@@ -1993,6 +2052,9 @@ class Connection:
|
|
|
1993
2052
|
|
|
1994
2053
|
def last_insert_rowid(self) -> int:
|
|
1995
2054
|
"""Returns the integer key of the most recent insert in the database.
|
|
2055
|
+
It is recommended to use SQL `RETURNING <https://sqlite.org/lang_returning.html>`__
|
|
2056
|
+
instead because that ensures you get the rowid directly from the
|
|
2057
|
+
SQL that made the change.
|
|
1996
2058
|
|
|
1997
2059
|
Calls: `sqlite3_last_insert_rowid <https://sqlite.org/c3ref/last_insert_rowid.html>`__"""
|
|
1998
2060
|
...
|
|
@@ -6050,8 +6112,8 @@ class AsyncBlob:
|
|
|
6050
6112
|
"""This represents a :class:`Blob` when in async mode.
|
|
6051
6113
|
|
|
6052
6114
|
This object is created by :meth:`Connection.blob_open` and provides
|
|
6053
|
-
access to a blob in the database. It behaves like a Python
|
|
6054
|
-
It wraps a `sqlite3_blob
|
|
6115
|
+
access to a blob in the database. It behaves like a Python
|
|
6116
|
+
:class:`file <io.RawIOBase>` in binary mode. It wraps a `sqlite3_blob
|
|
6055
6117
|
<https://sqlite.org/c3ref/blob.html>`_.
|
|
6056
6118
|
|
|
6057
6119
|
.. note::
|
|
@@ -6096,8 +6158,25 @@ class AsyncBlob:
|
|
|
6096
6158
|
Calls: `sqlite3_blob_close <https://sqlite.org/c3ref/blob_close.html>`__"""
|
|
6097
6159
|
...
|
|
6098
6160
|
|
|
6161
|
+
closed: bool
|
|
6162
|
+
"""Indicates if the blob has been closed."""
|
|
6099
6163
|
|
|
6100
6164
|
|
|
6165
|
+
|
|
6166
|
+
def fileno(self) -> int:
|
|
6167
|
+
"""Always raises :exc:`OSError` because there is no
|
|
6168
|
+
underlying file descriptor."""
|
|
6169
|
+
...
|
|
6170
|
+
|
|
6171
|
+
async def flush(self) -> None:
|
|
6172
|
+
"""Does nothing. There is no intermediate buffer, and SQLite's overall
|
|
6173
|
+
transaction/savepoint handling deals with database commits."""
|
|
6174
|
+
...
|
|
6175
|
+
|
|
6176
|
+
def isatty(self) -> False:
|
|
6177
|
+
"""Blobs are never interactive."""
|
|
6178
|
+
...
|
|
6179
|
+
|
|
6101
6180
|
def length(self) -> int:
|
|
6102
6181
|
"""Returns the size of the blob in bytes.
|
|
6103
6182
|
|
|
@@ -6134,6 +6213,24 @@ class AsyncBlob:
|
|
|
6134
6213
|
Calls: `sqlite3_blob_read <https://sqlite.org/c3ref/blob_read.html>`__"""
|
|
6135
6214
|
...
|
|
6136
6215
|
|
|
6216
|
+
def readable(self) -> True:
|
|
6217
|
+
"""You can always read from a blob"""
|
|
6218
|
+
...
|
|
6219
|
+
|
|
6220
|
+
async def readall(self) -> bytes:
|
|
6221
|
+
"""Read all data until the end of the blob"""
|
|
6222
|
+
...
|
|
6223
|
+
|
|
6224
|
+
async def readline(self, size: int = -1) -> bytes:
|
|
6225
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
6226
|
+
You can wrap with :class:`io.BufferedReader`."""
|
|
6227
|
+
...
|
|
6228
|
+
|
|
6229
|
+
async def readlines(self, hint: int = -1) -> list[bytes]:
|
|
6230
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
6231
|
+
You can wrap with :class:`io.BufferedReader`."""
|
|
6232
|
+
...
|
|
6233
|
+
|
|
6137
6234
|
async def reopen(self, rowid: int) -> None:
|
|
6138
6235
|
"""Change this blob object to point to a different row. It can be
|
|
6139
6236
|
faster than closing an existing blob an opening a new one.
|
|
@@ -6151,13 +6248,28 @@ class AsyncBlob:
|
|
|
6151
6248
|
:raises ValueError: If the resulting offset is before the beginning (less than zero) or beyond the end of the blob."""
|
|
6152
6249
|
...
|
|
6153
6250
|
|
|
6251
|
+
def seekable(self) -> True:
|
|
6252
|
+
"""You can always seek in a blob"""
|
|
6253
|
+
...
|
|
6254
|
+
|
|
6154
6255
|
def tell(self) -> int:
|
|
6155
6256
|
"""Returns the current offset."""
|
|
6156
6257
|
...
|
|
6157
6258
|
|
|
6158
|
-
async def
|
|
6259
|
+
async def truncate(self, size = None) -> None:
|
|
6260
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
6261
|
+
You cannot change the size of a blob."""
|
|
6262
|
+
...
|
|
6263
|
+
|
|
6264
|
+
def writable(self) -> bool:
|
|
6265
|
+
"""Returns True if the blob was open for writing, else False."""
|
|
6266
|
+
...
|
|
6267
|
+
|
|
6268
|
+
async def write(self, data: Buffer) -> int:
|
|
6159
6269
|
"""Writes the data to the blob.
|
|
6160
6270
|
|
|
6271
|
+
Returns the number of bytes written, which will be all of them.
|
|
6272
|
+
|
|
6161
6273
|
:param data: Buffer to write
|
|
6162
6274
|
|
|
6163
6275
|
:raises TypeError: Wrong data type
|
|
@@ -6170,6 +6282,11 @@ class AsyncBlob:
|
|
|
6170
6282
|
Calls: `sqlite3_blob_write <https://sqlite.org/c3ref/blob_write.html>`__"""
|
|
6171
6283
|
...
|
|
6172
6284
|
|
|
6285
|
+
async def writelines(self, lines) -> None:
|
|
6286
|
+
"""Always raises :exc:`io.UnsupportedOperation`.
|
|
6287
|
+
You can wrap with :class:`io.BufferedWriter`."""
|
|
6288
|
+
...
|
|
6289
|
+
|
|
6173
6290
|
class AsyncConnection:
|
|
6174
6291
|
"""This represents a :class:`Connection` when in async mode.
|
|
6175
6292
|
|
|
@@ -6354,7 +6471,7 @@ class AsyncConnection:
|
|
|
6354
6471
|
the first statement"""
|
|
6355
6472
|
...
|
|
6356
6473
|
|
|
6357
|
-
def changes(self) -> int:
|
|
6474
|
+
async def changes(self) -> int:
|
|
6358
6475
|
"""Returns the number of database rows that were changed (or inserted
|
|
6359
6476
|
or deleted) by the most recently completed INSERT, UPDATE, or DELETE
|
|
6360
6477
|
statement.
|
|
@@ -6677,7 +6794,9 @@ class AsyncConnection:
|
|
|
6677
6794
|
"""If *keep* is *None* then all registered virtual tables are dropped.
|
|
6678
6795
|
|
|
6679
6796
|
Otherwise *keep* is a sequence of strings, naming the virtual tables that
|
|
6680
|
-
are kept, dropping all others.
|
|
6797
|
+
are kept, dropping all others.
|
|
6798
|
+
|
|
6799
|
+
Calls: `sqlite3_drop_modules <https://sqlite.org/c3ref/drop_modules.html>`__"""
|
|
6681
6800
|
...
|
|
6682
6801
|
|
|
6683
6802
|
async def enable_load_extension(self, enable: bool) -> None:
|
|
@@ -6819,8 +6938,10 @@ class AsyncConnection:
|
|
|
6819
6938
|
* `FTS5 documentation <https://www.sqlite.org/fts5.html#custom_tokenizers>`__"""
|
|
6820
6939
|
...
|
|
6821
6940
|
|
|
6822
|
-
def get_autocommit(self) -> bool:
|
|
6823
|
-
"""Returns if the Connection is in auto commit mode (ie not in a
|
|
6941
|
+
async def get_autocommit(self) -> bool:
|
|
6942
|
+
"""Returns if the Connection is in auto commit mode (ie not in a
|
|
6943
|
+
transaction). It is recommended to use :meth:`txn_state` instead
|
|
6944
|
+
which is more reliable.
|
|
6824
6945
|
|
|
6825
6946
|
Calls: `sqlite3_get_autocommit <https://sqlite.org/c3ref/get_autocommit.html>`__"""
|
|
6826
6947
|
...
|
|
@@ -6835,7 +6956,7 @@ class AsyncConnection:
|
|
|
6835
6956
|
<Connection.row_trace>`"""
|
|
6836
6957
|
...
|
|
6837
6958
|
|
|
6838
|
-
in_transaction: bool
|
|
6959
|
+
in_transaction: Awaitable[bool]
|
|
6839
6960
|
"""It is recommended to use :meth:`txn_state` instead which is more reliable.
|
|
6840
6961
|
|
|
6841
6962
|
Calls: `sqlite3_get_autocommit <https://sqlite.org/c3ref/get_autocommit.html>`__"""
|
|
@@ -6859,8 +6980,11 @@ class AsyncConnection:
|
|
|
6859
6980
|
|
|
6860
6981
|
Calls: `sqlite3_is_interrupted <https://sqlite.org/c3ref/interrupt.html>`__"""
|
|
6861
6982
|
|
|
6862
|
-
def last_insert_rowid(self) -> int:
|
|
6983
|
+
async def last_insert_rowid(self) -> int:
|
|
6863
6984
|
"""Returns the integer key of the most recent insert in the database.
|
|
6985
|
+
It is recommended to use SQL `RETURNING <https://sqlite.org/lang_returning.html>`__
|
|
6986
|
+
instead because that ensures you get the rowid directly from the
|
|
6987
|
+
SQL that made the change.
|
|
6864
6988
|
|
|
6865
6989
|
Calls: `sqlite3_last_insert_rowid <https://sqlite.org/c3ref/last_insert_rowid.html>`__"""
|
|
6866
6990
|
...
|
|
@@ -7288,7 +7412,7 @@ class AsyncConnection:
|
|
|
7288
7412
|
Calls: `sqlite3_table_column_metadata <https://sqlite.org/c3ref/table_column_metadata.html>`__"""
|
|
7289
7413
|
...
|
|
7290
7414
|
|
|
7291
|
-
def total_changes(self) -> int:
|
|
7415
|
+
async def total_changes(self) -> int:
|
|
7292
7416
|
"""Returns the total number of database rows that have be modified,
|
|
7293
7417
|
inserted, or deleted since the database connection was opened.
|
|
7294
7418
|
|
|
@@ -27,10 +27,6 @@
|
|
|
27
27
|
"description": "A VFS shim that writes a checksum on each page of an SQLite database file",
|
|
28
28
|
"type": "extension"
|
|
29
29
|
},
|
|
30
|
-
"closure": {
|
|
31
|
-
"description": "A virtual table that finds the transitive closure of a parent/child relationship in a real table",
|
|
32
|
-
"type": "extension"
|
|
33
|
-
},
|
|
34
30
|
"completion": {
|
|
35
31
|
"description": "A virtual table that returns suggested completions for a partial SQL input",
|
|
36
32
|
"type": "extension"
|