feat: add support for python 3.14 (#22)

* feat: add support for python 3.14

* chore: migrate to poetry 2

* fix: more tweaks for py314; use uv

---------

Co-authored-by: Ted Conbeer <tconbeer@users.noreply.github.com>
This commit is contained in:
Branch Vincent 2025-10-29 12:55:57 -07:00 committed by GitHub
commit 463e6f9330
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 1660 additions and 1624 deletions

View file

@ -1,42 +1,63 @@
[tool.poetry]
[project]
name = "harlequin-odbc"
version = "0.3.1"
description = "A Harlequin adapter for ODBC drivers."
authors = ["Ted Conbeer <tconbeer@users.noreply.github.com>"]
authors = [
{name = "Ted Conbeer", email = "tconbeer@users.noreply.github.com"},
]
license = "MIT"
readme = "README.md"
packages = [
{ include = "harlequin_odbc", from = "src" },
requires-python = ">=3.10"
dependencies = [
"harlequin>=1.25,<3",
"pyodbc>=5.0,<6",
# temp pin to allow prerelease versions
"duckdb>=1.4.2.dev0; python_version>='3.14'"
]
[tool.poetry.plugins."harlequin.adapter"]
[project.entry-points."harlequin.adapter"]
odbc = "harlequin_odbc:HarlequinOdbcAdapter"
[tool.poetry.dependencies]
python = ">=3.9,<3.14"
harlequin = ">=1.25,<3"
pyodbc = "^5.0"
[dependency-groups]
dev = [
"harlequin==2.4.0",
"ruff>=0.6,<1",
"pytest>=7.4.3,<8",
"mypy>=1.7.0,<2",
"pre-commit>=3.5.0,<4",
]
[tool.poetry.group.dev.dependencies]
ruff = "^0.6.0"
pytest = "^7.4.3"
mypy = "^1.7.0"
pre-commit = "^3.5.0"
importlib_metadata = { version = ">=4.6.0", python = "<3.10.0" }
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = [
"src/harlequin_odbc",
]
[tool.hatch.build.targets.sdist]
only-include = [
"src",
"README.md",
"CHANGELOG.md",
"LICENSE",
"pyproject.toml"
]
[tool.ruff]
target-version = "py39"
target-version = "py310"
[tool.ruff.lint]
select = ["A", "B", "E", "F", "I"]
[tool.mypy]
python_version = "3.9"
python_version = "3.10"
files = [
"src/**/*.py",
"tests/**/*.py",