diff --git a/python-sqlite-utils.changes b/python-sqlite-utils.changes index 13f74ac..b1d9cef 100644 --- a/python-sqlite-utils.changes +++ b/python-sqlite-utils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Oct 8 05:02:17 UTC 2025 - Steve Kowalik + +- Add patch support-click-8.3.0.patch: + * Workaround click 8.3.0 bug. +- Correct Requires, it's python-python-dateutil. + ------------------------------------------------------------------- Wed Mar 19 12:47:42 UTC 2025 - Matej Cepl diff --git a/python-sqlite-utils.spec b/python-sqlite-utils.spec index dc1098a..96a0dea 100644 --- a/python-sqlite-utils.spec +++ b/python-sqlite-utils.spec @@ -1,7 +1,7 @@ # # spec file for package python-sqlite-utils # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,9 +22,10 @@ Version: 3.38 Release: 0 Summary: Python CLI tool and library for manipulating SQLite databases License: Apache-2.0 -Group: Development/Languages/Python URL: https://github.com/simonw/sqlite-utils Source: https://files.pythonhosted.org/packages/source/s/sqlite_utils/sqlite_utils-%{version}.tar.gz +# PATCH-FIX-UPSTREAM gh#simonw/sqlite-utils#665/commits/211831966ed389954f44cb8aa2b842481c374557 +Patch0: support-click-8.3.0.patch BuildRequires: %{python_module click-default-group} BuildRequires: %{python_module click} BuildRequires: %{python_module hypothesis} @@ -40,8 +41,8 @@ BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-click Requires: python-click-default-group -Requires: python-dateutil Requires: python-pluggy +Requires: python-python-dateutil Requires: python-sqlite-fts4 Requires: python-tabulate Requires(post): update-alternatives @@ -53,7 +54,7 @@ BuildArch: noarch CLI tool and Python utility functions for manipulating SQLite databases. %prep -%setup -q -n sqlite_utils-%{version} +%autosetup -p1 -n sqlite_utils-%{version} # https://github.com/simonw/sqlite-utils/issues/357 sed -i 's:pytest-runner:pytest:' setup.py @@ -80,6 +81,6 @@ export LANG=en_US.UTF-8 %license LICENSE %python_alternative %{_bindir}/sqlite-utils %{python_sitelib}/sqlite_utils -%{python_sitelib}/sqlite_utils-%{version}*-info +%{python_sitelib}/sqlite_utils-%{version}.dist-info %changelog diff --git a/support-click-8.3.0.patch b/support-click-8.3.0.patch new file mode 100644 index 0000000..34cb6e3 --- /dev/null +++ b/support-click-8.3.0.patch @@ -0,0 +1,78 @@ +From 211831966ed389954f44cb8aa2b842481c374557 Mon Sep 17 00:00:00 2001 +From: Simon Willison +Date: Wed, 1 Oct 2025 13:22:10 -0700 +Subject: [PATCH] A bunch of fixes for Click sentinal stuff + +--- + sqlite_utils/cli.py | 31 +++++++++++++++++++++++++------ + 1 file changed, 25 insertions(+), 6 deletions(-) + +diff --git a/sqlite_utils/cli.py b/sqlite_utils/cli.py +index 5d3ba05e..6086ba96 100644 +--- a/sqlite_utils/cli.py ++++ b/sqlite_utils/cli.py +@@ -952,10 +952,14 @@ def insert_upsert_implementation( + functions=None, + strict=False, + ): ++ convert = _value_or_none(convert) ++ delimiter = _value_or_none(delimiter) ++ quotechar = _value_or_none(quotechar) ++ encoding = _value_or_none(encoding) ++ bulk_sql = _value_or_none(bulk_sql) + db = sqlite_utils.Database(path) + _load_extensions(db, load_extension) +- if functions: +- _register_functions(db, functions) ++ _maybe_register_functions(db, functions) + if (delimiter or quotechar or sniff or no_headers) and not tsv: + csv = True + if (nl + csv + tsv) >= 2: +@@ -1790,8 +1794,7 @@ def query( + _load_extensions(db, load_extension) + db.register_fts4_bm25() + +- if functions: +- _register_functions(db, functions) ++ _maybe_register_functions(db, functions) + + _execute_query( + db, +@@ -1917,6 +1920,9 @@ def memory( + \b + sqlite-utils memory animals.csv --schema + """ ++ sql = _value_or_none(sql) ++ save = _value_or_none(save) ++ encoding = _value_or_none(encoding) + db = sqlite_utils.Database(memory=True) + + # If --dump or --save or --analyze used but no paths detected, assume SQL query is a path: +@@ -1990,8 +1996,7 @@ def memory( + _load_extensions(db, load_extension) + db.register_fts4_bm25() + +- if functions: +- _register_functions(db, functions) ++ _maybe_register_functions(db, functions) + + if return_db: + return db +@@ -3286,3 +3291,17 @@ def _register_functions(db, functions): + for name, value in globals.items(): + if callable(value) and not name.startswith("_"): + db.register_function(value, name=name) ++ ++ ++def _value_or_none(value): ++ if getattr(value, "__class__", None).__name__ == "Sentinel": ++ return None ++ return value ++ ++ ++def _maybe_register_functions(db, functions): ++ functions = _value_or_none(functions) ++ if isinstance(functions, (bytes, bytearray)): ++ functions = functions.decode("utf-8") ++ if isinstance(functions, str) and functions.strip(): ++ _register_functions(db, functions)