- Update to 3.38
* Plugins can now reuse the implementation of the ``sqlite-utils memory``
CLI command with the new ``return_db=True`` parameter. (:issue:`643`)
* ``table.transform()`` now recreates indexes after transforming a table.
A new ``sqlite_utils.db.TransformError`` exception is raised if these
indexes cannot be recreated due to conflicting changes to the table
such as a column rename. Thanks, Mat Miller. (:issue:`633`)
* ``table.search()`` now accepts a ``include_rank=True`` parameter, causing
the resulting rows to have a ``rank`` column showing the calculated relevance
score. Thanks, `liunux4odoo <https://github.com/liunux4odoo>`__. (`#628`)
* Fixed an error that occurred when creating a strict table with at least
one floating point column. These ``FLOAT`` columns are now correctly
created as ``REAL`` as well, but only for strict tables. (:issue:`644`)
- from version 3.37
* The ``create-table`` and ``insert-files`` commands all now accept multiple
``--pk`` options for compound primary keys. (:issue:`620`)
* Now tested against Python 3.13 pre-release. (`#619`)
* Fixed a crash that can occur in environments with a broken ``numpy``
installation, producing a ``module 'numpy' has no attribute 'int8'``.
(:issue:`632`)
- Adjust upstream source name in spec file
- Use Python 3.11 on SLE-15 by default
- Limit Python files matched in %files section
- Switch build system from setuptools to pyproject.toml
* Add python-pip and python-wheel to BuildRequires
* Replace %python_build with %pyproject_wheel
* Replace %python_install with %pyproject_install
OBS-URL: https://build.opensuse.org/request/show/1254384
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sqlite-utils?expand=0&rev=11
* Support for creating tables in SQLite STRICT mode. Thanks,
Taj Khattra. (:issue:`344`) CLI commands create-table,
insert and upsert all now accept a --strict option. Python
methods that can create a table - table.create() and
insert/upsert/insert_all/upsert_all all now accept an
optional strict=True parameter. The transform command and
table.transform() method preserve strict mode when
transforming a table.
* CLI commands create-table, insert and upsert all now accept a
--strict option.
* Python methods that can create a table - table.create() and
insert/upsert/insert_all/upsert_all all now accept an
optional strict=True parameter.
* The transform command and table.transform() method preserve
strict mode when transforming a table.
* The sqlite-utils create-table command now accepts str, int
and bytes as aliases for text, integer and blob respectively.
(:issue:`606`)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sqlite-utils?expand=0&rev=9
* The ``--load-extension=spatialite`` option and
:ref:`find_spatialite() <python_api_gis_find_spatialite>`
utility function now both work correctly on ``arm64`` Linux.
* Fix for bug where ``sqlite-utils insert`` could cause your
terminal cursor to disappear. Thanks, `Luke Plant
* ``datetime.timedelta`` values are now stored as ``TEXT``
columns. Thanks, `Harald Nezbeda
* Test suite is now also run against Python 3.12.
* Fixed a bug where :ref:`table.transform()
<python_api_transform>` would sometimes re-assign the
``rowid`` values for a table rather than keeping them
consistent across the operation. (:issue:`592`)
* Adding foreign keys to a table no longer uses ``PRAGMA
writable_schema = 1`` to directly manipulate the
``sqlite_master`` table. This was resulting in errors in some
Python installations where the SQLite library was compiled in
a way that prevented this from working, in particular on
macOS. Foreign keys are now added using the :ref:`table
transformation <python_api_transform>` mechanism instead.
* This new mechanism creates a full copy of the table, so it is
likely to be significantly slower for large tables, but will
no longer trigger ``table sqlite_master may not be modified``
errors on platforms that do not support ``PRAGMA
writable_schema = 1``.
* A new plugin, `sqlite-utils-fast-fks
<https://github.com/simonw/sqlite-utils-fast-fks>`__, is now
available for developers who still want to use that faster
but riskier implementation.
* The :ref:`table.transform() method <python_api_transform>`
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sqlite-utils?expand=0&rev=7
* SpatiaLite helpers for the ``sqlite-utils`` command-line tool
* All commands now include example usage in their ``--help`` - see :ref:`cli_reference`. (:issue:`384`)
* Python library documentation has a new :ref:`python_api_getting_started` section. (:issue:`387`)
* Documentation now uses `Plausible analytics <https://plausible.io/>`__. (:issue:`389`)
* CLI and Python library improvements to help run `ANALYZE
inserting rows, to gain better performance from the SQLite query planner
when it runs against indexes.
* Three new CLI commands: ``create-database``, ``analyze`` and ``bulk``.
* More details and examples can be found in `the annotated release notes <https://simonwillison.net/2022/Jan/11/sqlite-utils/>`__.
* Fixed bug where ``sqlite-utils upsert ... --detect-types`` ignored the ``--detect-types`` option.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sqlite-utils?expand=0&rev=6
- Update to version 3.5.
* ``sqlite-utils insert --sniff`` option for detecting the delimiter
and quote character used by a CSV file
* The ``table.rows_where()``, ``table.search()`` and
``table.search_sql()`` methods all now take optional ``offset=``
and ``limit=`` arguments.
* New ``--no-headers`` option for ``sqlite-utils insert --csv`` to
handle CSV files that are missing the header row.
* Fixed bug where inserting data with extra columns in subsequent
chunks would throw an error.
* Fixed bug importing CSV files with columns containing more than
128KB of data.
* Test suite now runs in CI against Ubuntu, macOS and Windows.
- Updates for 3.4.1
* Fixed a code import bug that slipped in to 3.4.
- Updates for 3.4
* ``sqlite-utils insert --csv`` now accepts optional
``--delimiter`` and ``--quotechar`` options.
- Updates for 3.3
* The ``table.m2m()`` method now accepts an optional ``alter=True``
argument to specify that any missing columns should be added to
the referenced table.
- Updates for 3.2.1
* Fixed a bug where ``.add_missing_columns()`` failed to take case
insensitive column names into account.
- Updates for 3.2
* This release introduces a new mechanism for speeding up
``count(*)`` queries using cached table counts, stored in a
``_counts`` table and updated by triggers. This mechanism is
described in :ref:`python_api_cached_table_counts`, and can be
enabled using Python API methods or the new ``enable-counts``
CLI command.
* ``table.enable_counts()`` method for enabling these triggers
on a specific table.
* ``db.enable_counts()`` method for enabling triggers on every
table in the database.
* New ``sqlite-utils enable-counts my.db`` command for enabling
counts on all or specific tables, see :ref:`cli_enable_counts`.
* New ``sqlite-utils triggers`` command for listing the triggers
defined for a database or specific tables.
* New ``db.use_counts_table`` property which, if ``True``, causes
``table.count`` to read from the ``_counts`` table.
* ``table.has_counts_triggers`` property revealing if a table has
been configured with the new ``_counts`` database triggers.
* ``db.reset_counts()`` method and ``sqlite-utils reset-counts``
command for resetting the values in the ``_counts`` table.
* The previously undocumented ``db.escape()`` method has been
renamed to ``db.quote()``.
* New ``table.triggers_dict`` and ``db.triggers_dict``
introspection properties.
* ``sqlite-utils insert`` now shows a more useful error message
for invalid JSON.
- Updates for 3.1.1
* Fixed failing test caused by ``optimize`` sometimes creating
larger database files.
* Documentation now lives on https://sqlite-utils.datasette.io/
* README now includes ``brew install sqlite-utils`` installation method.
- Updates for 3.1
* New command: ``sqlite-utils analyze-tables my.db`` outputs useful
information about the table columns in the database, such as the
number of distinct values and how many rows are null.
* New ``table.analyze_column(column)`` Python method used by the
``analyze-tables`` command - see :ref:`python_api_analyze_column`.
* The ``table.update()`` method now correctly handles values that
should be stored as JSON.
- Updates for 3.0
* This release introduces a new ``sqlite-utils search`` command
for searching tables, see :ref:`cli_search`.
* The ``table.search()`` method has been redesigned.
* The release includes minor backwards-incompatible changes, hence
the version bump to 3.0. Those changes, which should not affect
most users, are:
* The ``-c`` shortcut option for outputting CSV is no longer
available. The full ``--csv`` option is required instead.
* The ``-f`` shortcut for ``--fmt`` has also been removed - use
``--fmt``.
* The ``table.search()`` method now defaults to sorting by
relevance, not sorting by ``rowid``.
* The ``table.search()`` method now returns a generator over a list
of Python dictionaries. It previously returned a list of tuples.
* The ``query``, ``tables``, ``rows`` and ``search`` CLI commands
now accept a new ``--tsv`` option which outputs the results in TSV.
* A new ``table.virtual_table_using`` property reveals if a table
is a virtual table, and returns the upper case type of virtual
table (e.g. ``FTS4`` or ``FTS5``) if it is. It returns ``None``
if the table is not a virtual table.
* The new ``table.search_sql()`` method returns the SQL for
searching a table, see :ref:`python_api_fts_search_sql`.
* ``sqlite-utils rows`` now accepts multiple optional ``-c``
parameters specifying the columns to return.
* The ``sqlite-utils search`` command now defaults to returning
every result, unless you add a ``--limit 20`` option.
* The ``sqlite-utils search -c`` and ``table.search(columns=[])``
options are now fully respected.
- Skip python2 because python-sqlite-fts4 don't support it.
- Skip python36 because python-panda don't support it.
OBS-URL: https://build.opensuse.org/request/show/873656
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sqlite-utils?expand=0&rev=3