You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Free-threaded Python**: not supported in this client. A separate prototype client based on DuckDB's C API targets free-threading, Stable ABI, and multi-interpreter support.
Supported: `3.10`, `3.11`, `3.12`, `3.13`, `3.14`. Do **not** use free-threaded variants (`3.13t`, `3.14t`) — the production client does not support them.
118
+
Supported: `3.11`, `3.12`, `3.13`, `3.14`. Do **not** use free-threaded variants (`3.13t`, `3.14t`) — the production client does not support them.
119
119
120
120
### Build configuration reference
121
121
@@ -188,8 +188,11 @@ uv run ruff format src/ tests/
188
188
# Type checking (mypy — strict mode, see [tool.mypy] in pyproject.toml)
189
189
uv run mypy
190
190
191
-
# Pre-commit hooks (configured in .pre-commit-config.yaml)
192
-
uvx pre-commit run --all-files
191
+
# Pre-commit hooks (configured in .pre-commit-config.yaml). Install pinned to 3.12
192
+
# (cmakelang crashes on 3.14; keeps hooks off the build interpreter):
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,18 @@
4
4
5
5
See the [instructions on duckdb.org](https://duckdb.org/docs/stable/dev/building/python).
6
6
7
+
### Pre-commit hooks
8
+
9
+
Formatting and linting run through [pre-commit](https://pre-commit.com). Install it pinned to Python 3.12 (the `cmake-format` hook's `cmakelang` dependency crashes on 3.14) so the hooks stay independent of your build interpreter, which may be 3.13 or 3.14t:
10
+
11
+
```bash
12
+
uv tool install --python 3.12 pre-commit
13
+
pre-commit install # git hook, runs on `git commit`
0 commit comments