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]
- Drops support for Python 3.8
- Adds support for Python 3.13
- Adds support for Harlequin 2.X
## [0.1.1] - 2024-01-09
### 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
serve:
harlequin -a odbc "${ODBC_CONN_STR}"
harlequin -P None -a odbc "${ODBC_CONN_STR}"
.PHONY: lint
lint:
black .
ruff . --fix
mypy
ruff format .
ruff check . --fix
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"
[tool.poetry.dependencies]
python = ">=3.8.1,<4.0"
harlequin = "^1.9.1"
python = ">=3.9,<3.14"
harlequin = ">=1.9.1,<3"
pyodbc = "^5.0"
[tool.poetry.group.dev.dependencies]
ruff = "^0.1.6"
ruff = "^0.6.0"
pytest = "^7.4.3"
mypy = "^1.7.0"
pre-commit = "^3.5.0"
@ -30,9 +30,11 @@ build-backend = "poetry.core.masonry.api"
[tool.ruff]
select = ["A", "B", "E", "F", "I"]
target-version = "py38"
[tool.ruff.lint]
select = ["A", "B", "E", "F", "I"]
[tool.mypy]
python_version = "3.8"
files = [

View file

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