Skip to content

Commit d09d5f9

Browse files
fix(kernel): cap pyarrow <23 on the sub-3.10 band so poetry lock resolves
The kernel's transitive pyarrow>=23.0.1,<24 conflicts with the connector's own pyarrow>=14.0.1 (declared across 3.8–3.13) during `poetry lock`: pyarrow>=23 dropped Python 3.9, so for the 3.8–3.10 slice poetry can't find a pyarrow satisfying both and version solving fails ("pyarrow is forbidden" -> "databricks-sql-kernel is forbidden"). The kernel's python>=3.10 marker doesn't help because poetry unifies the pyarrow constraint across the connector's declared pyarrow band, not the kernel's. Split the connector's pyarrow entry at 3.10 and cap the <3.10 band at <23. This removes no installable version — the newest pyarrow with a Python 3.9 wheel is 21.x — it just makes that physical fact explicit to the solver, so the <3.10 band (capped, kernel absent) and the >=3.10 band (where the kernel can pull pyarrow up to <24) no longer overlap. Verified `poetry lock` resolves the full dependency set with this change. Co-authored-by: Isaac Signed-off-by: Vikrant Puppala <vikrant.puppala@databricks.com>
1 parent a5db60d commit d09d5f9

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

pyproject.toml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,16 @@ openpyxl = "^3.0.10"
2525
urllib3 = ">=1.26"
2626
python-dateutil = "^2.8.0"
2727
pyarrow = [
28-
{ version = ">=14.0.1", python = ">=3.8,<3.13", optional=true },
28+
# The <3.10 band is capped at <23 because pyarrow>=23 dropped
29+
# Python 3.9 (it requires >=3.10). Without the cap, poetry tries to
30+
# unify this entry with the kernel's transitive pyarrow>=23.0.1,<24
31+
# across the 3.8–3.10 slice and `poetry lock` fails ("pyarrow is
32+
# forbidden"). The cap removes no installable version — the newest
33+
# pyarrow with a 3.9 wheel is 21.x — it just makes that explicit to
34+
# the solver so the optional [kernel] extra (python>=3.10) can
35+
# coexist. See the kernel dep + [kernel] extra below.
36+
{ version = ">=14.0.1,<23", python = ">=3.8,<3.10", optional=true },
37+
{ version = ">=14.0.1", python = ">=3.10,<3.13", optional=true },
2938
{ version = ">=18.0.0", python = ">=3.13,<3.14", optional=true },
3039
{ version = ">=22.0.0", python = ">=3.14", optional=true }
3140
]

0 commit comments

Comments
 (0)