Compare commits

...

6 commits

Author SHA1 Message Date
Simon Willison
85b1be10c8 Same fix for test-coverage.yml
Refs https://github.com/simonw/sqlite-utils/pull/852/changes/ef50b31a21104351445c4856ff3a80b81b52e847
2026-09-01 21:44:52 -07:00
Simon Willison
f7e3174401 Fix for SpatialLite installation failure
Fable 5.1 explains:

> apt on the runner image has stale package lists. It tried to download libminizip1t64_1.3.dfsg-3.1ubuntu2.1 from security.ubuntu.com and got a 404, because Ubuntu has since published a newer build of that package and pulled the old .deb from the mirror.
2026-09-01 21:44:52 -07:00
Simon Willison
b97295271c Test against 3.15 RCs
See https://simonwillison.net/2026/Sep/1/python-315-rc-2/
2026-09-01 21:44:52 -07:00
Simon Willison
56dd09702f Run no-default-groups smoke test from Justfile
Refs #842

I had to add --isolated because otherwise this test would pass if a .venv
folder already existed with the dev dependencies installed in it.
2026-08-13 17:01:47 -07:00
Simon Willison
28dc6278cc Release 4.2.1
Refs #842, #843
2026-08-13 16:52:30 -07:00
Simon Willison
f6d73112c8
Fix for sqlite-utils 4.2 crashing bug (#843)
- Remove from typing_extensions import Self
- Smoke test: uv run --no-default-groups sqlite-utils --help

Closes #842
2026-08-13 16:52:03 -07:00
6 changed files with 23 additions and 9 deletions

View file

@ -20,7 +20,7 @@ jobs:
cache: pip
cache-dependency-path: pyproject.toml
- name: Install SpatiaLite
run: sudo apt-get install libsqlite3-mod-spatialite
run: sudo apt-get update && sudo apt-get install -y libsqlite3-mod-spatialite
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip

View file

@ -10,18 +10,19 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15-dev"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
numpy: [0, 1]
os: [ubuntu-latest, macos-latest, windows-latest, macos-14]
steps:
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache: pip
cache-dependency-path: pyproject.toml
check-latest: true
- name: Install dependencies
run: |
pip install . --group dev
@ -30,7 +31,7 @@ jobs:
run: pip install numpy
- name: Install SpatiaLite
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install libsqlite3-mod-spatialite
run: sudo apt-get update && sudo apt-get install -y libsqlite3-mod-spatialite
- name: Build extension for --load-extension test
if: matrix.os == 'ubuntu-latest'
run: |-
@ -53,6 +54,11 @@ jobs:
run: |
pip install uv
uv run ty check sqlite_utils
- name: Check no accidental dev= dependencies needed
if: matrix.os == 'ubuntu-latest'
run: |
pip install uv
uv run --no-default-groups sqlite-utils --help
- name: Check formatting
run: black . --check
- name: Check if cog needs to be run

View file

@ -2,9 +2,12 @@
@default: test lint
# Run pytest with supplied options
@test *options:
@test *options: test-no-dev-dependencies
uv run pytest {{options}}
@test-no-dev-dependencies:
uv run --isolated --no-default-groups sqlite-utils --help > /dev/null
@run *options:
uv run -- {{options}}

View file

@ -4,6 +4,13 @@
Changelog
===========
.. _v4_2_1:
4.2.1 (2026-08-13)
------------------
- Fix for ``No module named 'typing_extensions'`` crashing bug accidentally shipped in version 4.2. (:issue:`842`)
.. _v4_2:
4.2 (2026-08-13)

View file

@ -1,6 +1,6 @@
[project]
name = "sqlite-utils"
version = "4.2"
version = "4.2.1"
description = "CLI tool and Python library for manipulating SQLite databases"
readme = { file = "README.md", content-type = "text/markdown" }
authors = [

View file

@ -24,8 +24,6 @@ from typing import (
)
from sqlite_fts4 import rank_bm25
from typing_extensions import Self
from sqlite_utils.plugins import ensure_plugins_loaded, pm
from .create_table_parser import (
@ -637,7 +635,7 @@ class Database:
pm.hook.prepare_connection(conn=self.conn)
self.strict = strict
def __enter__(self) -> Self:
def __enter__(self):
return self
def __exit__(