fix: relax harlequin dependency; update other deps

This commit is contained in:
Ted Conbeer 2025-01-08 11:07:41 -07:00
commit ebfbf8f6e3
6 changed files with 675 additions and 557 deletions

View file

@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
## [Unreleased] ## [Unreleased]
- Drops support for Python 3.8
- Adds support for Python 3.13
- Adds support for Harlequin 2.X
## [0.1.1] - 2024-01-09 ## [0.1.1] - 2024-01-09
### Bug Fixes ### Bug Fixes

View file

@ -1,9 +1,24 @@
.PHONY: check
check:
ruff format .
ruff check . --fix
mypy
pytest
.PHONY: init
init:
docker-compose up -d
.PHONY: clean
clean:
docker-compose down
.PHONY: serve .PHONY: serve
serve: serve:
harlequin -a odbc "${ODBC_CONN_STR}" harlequin -P None -a odbc "${ODBC_CONN_STR}"
.PHONY: lint .PHONY: lint
lint: lint:
black . ruff format .
ruff . --fix ruff check . --fix
mypy mypy

15
docker-compose.yml Normal file
View file

@ -0,0 +1,15 @@
services:
db:
image: mcr.microsoft.com/mssql/server:2019-latest
restart: always
environment:
ACCEPT_EULA: Y
MSSQL_SA_PASSWORD: for-testing
volumes:
- sqlserver_data:/var/opt/mssql
ports:
- 1433:1433
volumes:
sqlserver_data:

1175
poetry.lock generated

File diff suppressed because it is too large Load diff

View file

@ -13,12 +13,12 @@ packages = [
odbc = "harlequin_odbc:HarlequinOdbcAdapter" odbc = "harlequin_odbc:HarlequinOdbcAdapter"
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = ">=3.8.1,<4.0" python = ">=3.9,<3.14"
harlequin = "^1.9.1" harlequin = ">=1.9.1,<3"
pyodbc = "^5.0" pyodbc = "^5.0"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
ruff = "^0.1.6" ruff = "^0.6.0"
pytest = "^7.4.3" pytest = "^7.4.3"
mypy = "^1.7.0" mypy = "^1.7.0"
pre-commit = "^3.5.0" pre-commit = "^3.5.0"
@ -30,9 +30,11 @@ build-backend = "poetry.core.masonry.api"
[tool.ruff] [tool.ruff]
select = ["A", "B", "E", "F", "I"]
target-version = "py38" target-version = "py38"
[tool.ruff.lint]
select = ["A", "B", "E", "F", "I"]
[tool.mypy] [tool.mypy]
python_version = "3.8" python_version = "3.8"
files = [ files = [

View file

@ -6,12 +6,13 @@ import pytest
from harlequin.adapter import HarlequinAdapter, HarlequinConnection, HarlequinCursor from harlequin.adapter import HarlequinAdapter, HarlequinConnection, HarlequinCursor
from harlequin.catalog import Catalog, CatalogItem from harlequin.catalog import Catalog, CatalogItem
from harlequin.exception import HarlequinConnectionError, HarlequinQueryError from harlequin.exception import HarlequinConnectionError, HarlequinQueryError
from textual_fastdatatable.backend import create_backend
from harlequin_odbc.adapter import ( from harlequin_odbc.adapter import (
HarlequinOdbcAdapter, HarlequinOdbcAdapter,
HarlequinOdbcConnection, HarlequinOdbcConnection,
HarlequinOdbcCursor, HarlequinOdbcCursor,
) )
from textual_fastdatatable.backend import create_backend
if sys.version_info < (3, 10): if sys.version_info < (3, 10):
from importlib_metadata import entry_points from importlib_metadata import entry_points
@ -25,7 +26,7 @@ def test_plugin_discovery() -> None:
PLUGIN_NAME = "odbc" PLUGIN_NAME = "odbc"
eps = entry_points(group="harlequin.adapter") eps = entry_points(group="harlequin.adapter")
assert eps[PLUGIN_NAME] assert eps[PLUGIN_NAME]
adapter_cls = eps[PLUGIN_NAME].load() # type: ignore adapter_cls = eps[PLUGIN_NAME].load()
assert issubclass(adapter_cls, HarlequinAdapter) assert issubclass(adapter_cls, HarlequinAdapter)
assert adapter_cls == HarlequinOdbcAdapter assert adapter_cls == HarlequinOdbcAdapter