From c12519f25cf6b090e98becf208a6769d61244c44a99bb3b5aa7f3e09db193dad Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Fri, 12 Dec 2025 10:56:31 +0000 Subject: [PATCH] =?UTF-8?q?-=20update=20to=203.51.1.0:=20=20=20*=20All=20o?= =?UTF-8?q?bjects=20that=20can=20be=20closed=20implement=20=5F=5Fbool=5F?= =?UTF-8?q?=5F()=20which=20=20=20=20=20returns=20True=20while=20open=20and?= =?UTF-8?q?=20False=20when=20closed=20-=20Connection,=20=20=20=20=20Cursor?= =?UTF-8?q?,=20Backup,=20Blob,=20Session,=20ChangesetBuilder,=20Rebaser.?= =?UTF-8?q?=20-=20update=20to=203.51.0.0:=20=20=20*=20JSON=20can=20be=20us?= =?UTF-8?q?ed=20as=20though=20it=20is=20a=20native=20type=20of=20SQLite,?= =?UTF-8?q?=20=20=20=20=20with=20automatic=20conversion=20of=20Python=20ob?= =?UTF-8?q?jects=20on=20writing=20and=20=20=20=20=20reading.=20(example)?= =?UTF-8?q?=20=20=20*=20Connection.convert=5Fbinding=20(and=20Cursor.conve?= =?UTF-8?q?rt=5Fbinding)=20=20=20=20=20callback=20to=20allow=20conversion?= =?UTF-8?q?=20of=20bindings=20when=20executing=20SQL.=20=20=20*=20Connecti?= =?UTF-8?q?on.convert=5Fjsonb=20(and=20Cursor.convert=5Fjsonb)=20callback?= =?UTF-8?q?=20=20=20=20=20to=20allow=20conversion=20of=20JSONB=20when=20re?= =?UTF-8?q?ading=20query=20results.=20=20=20=20=20(JSONB=20is=20SQLite?= =?UTF-8?q?=E2=80=99s=20binary=20internal=20parsed=20format=20for=20quick?= =?UTF-8?q?=20=20=20=20=20operations=20on=20JSON.)=20=20=20*=203=20functio?= =?UTF-8?q?ns=20for=20working=20directly=20with=20JSONB=20allowing=20direc?= =?UTF-8?q?t=20=20=20=20=20conversion=20between=20Python=20objects=20and?= =?UTF-8?q?=20JSONB,=20without=20having=20=20=20=20=20to=20go=20through=20?= =?UTF-8?q?the=20intermediate=20JSON=20text=20format.=20=20=20*=20Added=20?= =?UTF-8?q?apsw.ext.Function()=20for=20calling=20SQL=20functions=20directl?= =?UTF-8?q?y=20=20=20=20=20from=20Python.=20=20=20*=20When=20using=20with?= =?UTF-8?q?=20(Connection=20context=20manager)=20you=20can=20set=20the=20?= =?UTF-8?q?=20=20=20=20outer=20transaction=20mode=20to=20DEFERRED=20(defau?= =?UTF-8?q?lt)=20/=20IMMEDIATE=20/=20=20=20=20=20EXCLUSIVE.=20(APSW=20issu?= =?UTF-8?q?e=20578)=20=20=20*=20Changeset.apply()=20now=20takes=20filter?= =?UTF-8?q?=5Fchange=20parameter=20for=20=20=20=20=20allowing=20filtering?= =?UTF-8?q?=20on=20individual=20change=20level,=20taking=20=20=20=20=20adv?= =?UTF-8?q?antage=20of=20sqlite3changeset=5Fapply=5Fv3=20=20=20*=20Updated?= =?UTF-8?q?=20Connection.status()=20to=20use=2064=20bit=20API,=20and=20=20?= =?UTF-8?q?=20=20=20apsw.ext.ShowResourceUsage()=20to=20show=20TEMPBUF=5FS?= =?UTF-8?q?PILL.=20(pragma=20=20=20=20=20cache=5Fsize=20controls=20the=20a?= =?UTF-8?q?mount=20of=20temp/cache=20memory=20=20=20=20=20available.)=20?= =?UTF-8?q?=20=20*=20The=20percentile=20extension=20is=20enabled=20when=20?= =?UTF-8?q?enabling=20all?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-apsw?expand=0&rev=63 --- apsw-3.50.4.0.tar.gz | 3 --- apsw-3.51.1.0.tar.gz | 3 +++ python-apsw.changes | 52 ++++++++++++++++++++++++++++++++++++++++++++ python-apsw.spec | 5 +++-- 4 files changed, 58 insertions(+), 5 deletions(-) delete mode 100644 apsw-3.50.4.0.tar.gz create mode 100644 apsw-3.51.1.0.tar.gz diff --git a/apsw-3.50.4.0.tar.gz b/apsw-3.50.4.0.tar.gz deleted file mode 100644 index fe0c233..0000000 --- a/apsw-3.50.4.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a817c387ce2f4030ab7c3064cf21e9957911155f24f226c3ad4938df3a155e11 -size 1093635 diff --git a/apsw-3.51.1.0.tar.gz b/apsw-3.51.1.0.tar.gz new file mode 100644 index 0000000..8b9a269 --- /dev/null +++ b/apsw-3.51.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3322d4f44b19693dc5e3d9b24339ecb2b5225e0ac8b00090b3c466d3c2e4dc6 +size 1156262 diff --git a/python-apsw.changes b/python-apsw.changes index 990d235..8572a09 100644 --- a/python-apsw.changes +++ b/python-apsw.changes @@ -1,3 +1,55 @@ +------------------------------------------------------------------- +Fri Dec 12 10:55:57 UTC 2025 - Dirk Müller + +- update to 3.51.1.0: + * All objects that can be closed implement __bool__() which + returns True while open and False when closed - Connection, + Cursor, Backup, Blob, Session, ChangesetBuilder, Rebaser. +- update to 3.51.0.0: + * JSON can be used as though it is a native type of SQLite, + with automatic conversion of Python objects on writing and + reading. (example) + * Connection.convert_binding (and Cursor.convert_binding) + callback to allow conversion of bindings when executing SQL. + * Connection.convert_jsonb (and Cursor.convert_jsonb) callback + to allow conversion of JSONB when reading query results. + (JSONB is SQLite’s binary internal parsed format for quick + operations on JSON.) + * 3 functions for working directly with JSONB allowing direct + conversion between Python objects and JSONB, without having + to go through the intermediate JSON text format. + * Added apsw.ext.Function() for calling SQL functions directly + from Python. + * When using with (Connection context manager) you can set the + outer transaction mode to DEFERRED (default) / IMMEDIATE / + EXCLUSIVE. (APSW issue 578) + * Changeset.apply() now takes filter_change parameter for + allowing filtering on individual change level, taking + advantage of sqlite3changeset_apply_v3 + * Updated Connection.status() to use 64 bit API, and + apsw.ext.ShowResourceUsage() to show TEMPBUF_SPILL. (pragma + cache_size controls the amount of temp/cache memory + available.) + * The percentile extension is enabled when enabling all + extensions, which is standard for pypi downloads. It enables + several percentile, median, and related SQL functions. + * The carray extension is enabled when enabling all extensions, + which is standard for pypi downloads. apsw.carray() allows + binding bulk numbers, strings, and blobs to a query. See the + example. + * SQLITE_SCM_ constants (BRANCH, TAGS, DATETIME) are available + on the module if built with the amalgamation. + * apsw.ext.generate_series_sqlite() updated to exactly match + SQLite’s behaviour. apsw.ext.generate_series() is recommended + as it matches other databases. + * Updated apsw.unicode to support Unicode 17.0 which adds 4,803 + new codepoints, and updated line breaking, along with other + small tweaks. + * The Geopoly extension (GeoJSON access to RTree) is enabled + when --enable-all-extensions is used with setup.py. This + includes pypi builds. + * This is the final release supporting Python 3.9. + ------------------------------------------------------------------- Tue Aug 5 08:38:22 UTC 2025 - John Paul Adrian Glaubitz diff --git a/python-apsw.spec b/python-apsw.spec index 2099df3..90800df 100644 --- a/python-apsw.spec +++ b/python-apsw.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # + %if 0%{?suse_version} > 1500 %bcond_without libalternatives %else @@ -23,7 +24,7 @@ %{?sle15_python_module_pythons} Name: python-apsw -Version: 3.50.4.0 +Version: 3.51.1.0 Release: 0 Summary: Another Python SQLite Wrapper License: Zlib @@ -43,7 +44,7 @@ Requires: alts BuildRequires: alts %else Requires(post): update-alternatives -Requires(postun):update-alternatives +Requires(postun): update-alternatives %endif %python_subpackages